From f27107c5e4c43d19b9ce59557d63c6fcd202adcf Mon Sep 17 00:00:00 2001 From: Dominik Maier Date: Sat, 2 Sep 2023 21:56:01 +0200 Subject: [PATCH] Fix docs build for libafl_qemu (#1495) * Fix docs build for libafl_qemu * turn around * does this work? * build all-features in CI * fixes * fix ci --- .github/workflows/build_and_test.yml | 5 ++--- fuzzers/qemu_coverage/build.rs | 3 +-- fuzzers/qemu_launcher/build.rs | 3 +-- libafl/Cargo.toml | 1 + libafl/build.rs | 2 +- libafl_qemu/Cargo.toml | 1 + libafl_qemu/libafl_qemu_sys/Cargo.toml | 1 + libafl_qemu/libafl_qemu_sys/build_linux.rs | 3 +-- 8 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 5b68367319..b1f8e073f2 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -91,10 +91,9 @@ jobs: # ---- doc check ---- - name: Build Docs - run: cargo +nightly doc --all-features + run: RUSTFLAGS="--cfg docsrs" cargo +nightly doc --all-features - name: Test Docs - run: cargo +nightly test --doc --all-features - + run: RUSTFLAGS="--cfg docsrs" cargo +nightly test --doc --all-features # ---- build normal and examples ---- - name: Run a normal build run: cargo build --verbose diff --git a/fuzzers/qemu_coverage/build.rs b/fuzzers/qemu_coverage/build.rs index 4c89763739..16317b1560 100644 --- a/fuzzers/qemu_coverage/build.rs +++ b/fuzzers/qemu_coverage/build.rs @@ -5,8 +5,7 @@ macro_rules! assert_unique_feature { () => {}; ($first:tt $(,$rest:tt)*) => { $( - #[cfg(not(feature = "clippy"))] // ignore multiple definition for clippy - #[cfg(all(feature = $first, feature = $rest))] + #[cfg(all(not(any(doc, feature = "clippy")), feature = $first, feature = $rest))] compile_error!(concat!("features \"", $first, "\" and \"", $rest, "\" cannot be used together")); )* assert_unique_feature!($($rest),*); diff --git a/fuzzers/qemu_launcher/build.rs b/fuzzers/qemu_launcher/build.rs index 4c89763739..16317b1560 100644 --- a/fuzzers/qemu_launcher/build.rs +++ b/fuzzers/qemu_launcher/build.rs @@ -5,8 +5,7 @@ macro_rules! assert_unique_feature { () => {}; ($first:tt $(,$rest:tt)*) => { $( - #[cfg(not(feature = "clippy"))] // ignore multiple definition for clippy - #[cfg(all(feature = $first, feature = $rest))] + #[cfg(all(not(any(doc, feature = "clippy")), feature = $first, feature = $rest))] compile_error!(concat!("features \"", $first, "\" and \"", $rest, "\" cannot be used together")); )* assert_unique_feature!($($rest),*); diff --git a/libafl/Cargo.toml b/libafl/Cargo.toml index 2a0cfc9d75..4c77731556 100644 --- a/libafl/Cargo.toml +++ b/libafl/Cargo.toml @@ -14,6 +14,7 @@ categories = ["development-tools::testing", "emulators", "embedded", "os", "no-s [package.metadata.docs.rs] features = ["document-features"] all-features = true +rustc-args = ["--cfg", "docsrs"] [features] default = ["std", "derive", "llmp_compression", "llmp_small_maps", "llmp_broker_timeouts", "rand_trait", "fork", "prelude", "gzip", "regex", "serdeany_autoreg", "tui_monitor", "libafl_bolts/xxh3"] diff --git a/libafl/build.rs b/libafl/build.rs index 420e392a43..0bcffa140b 100644 --- a/libafl/build.rs +++ b/libafl/build.rs @@ -8,7 +8,7 @@ fn main() { fn main() { println!("cargo:rerun-if-changed=build.rs"); assert!( - cfg!(not(feature = "nautilus")), + cfg!(all(not(docrs), not(feature = "nautilus"))), "The 'nautilus' feature of libafl requires a nightly compiler" ); } diff --git a/libafl_qemu/Cargo.toml b/libafl_qemu/Cargo.toml index 96319ea05b..30dd3e2a6b 100644 --- a/libafl_qemu/Cargo.toml +++ b/libafl_qemu/Cargo.toml @@ -13,6 +13,7 @@ categories = ["development-tools::testing", "emulators", "embedded", "os", "no-s [package.metadata.docs.rs] all-features = true +rustdoc-args = ["--cfg", "docsrs"] [features] default = ["fork", "build_libqasan", "serdeany_autoreg"] diff --git a/libafl_qemu/libafl_qemu_sys/Cargo.toml b/libafl_qemu/libafl_qemu_sys/Cargo.toml index 8f0bd00f2a..2cac0b76a4 100644 --- a/libafl_qemu/libafl_qemu_sys/Cargo.toml +++ b/libafl_qemu/libafl_qemu_sys/Cargo.toml @@ -13,6 +13,7 @@ categories = ["development-tools::testing", "emulators", "embedded", "os", "no-s [package.metadata.docs.rs] all-features = true +rustdoc-args = ["--cfg", "docsrs"] [features] # The following architecture features are mutually exclusive. diff --git a/libafl_qemu/libafl_qemu_sys/build_linux.rs b/libafl_qemu/libafl_qemu_sys/build_linux.rs index ca126db808..a6d09da552 100644 --- a/libafl_qemu/libafl_qemu_sys/build_linux.rs +++ b/libafl_qemu/libafl_qemu_sys/build_linux.rs @@ -7,8 +7,7 @@ macro_rules! assert_unique_feature { () => {}; ($first:tt $(,$rest:tt)*) => { $( - #[cfg(not(feature = "clippy"))] // ignore multiple definition for clippy - #[cfg(all(feature = $first, feature = $rest))] + #[cfg(all(not(any(docsrs, feature = "clippy")), feature = $first, feature = $rest))] compile_error!(concat!("features \"", $first, "\" and \"", $rest, "\" cannot be used together")); )* assert_unique_feature!($($rest),*);