From f072277a1ed8dbe3f1a56cd36e2e2a9997ea344d Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Fri, 5 Sep 2025 00:26:47 +0200 Subject: [PATCH 1/2] Clean up gitignores --- .gitignore | 3 ++- android-activity/.gitignore | 10 ---------- 2 files changed, 2 insertions(+), 11 deletions(-) delete mode 100644 android-activity/.gitignore diff --git a/.gitignore b/.gitignore index eb5a316..4fffb2f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -target +/target +/Cargo.lock diff --git a/android-activity/.gitignore b/android-activity/.gitignore deleted file mode 100644 index 29f475a..0000000 --- a/android-activity/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -/target -Cargo.lock - - -# Added by cargo -# -# already existing elements were commented out - -#/target -#Cargo.lock From ca141a1bb8ca7483b27b08391fa234c35cf74883 Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Thu, 5 Jun 2025 11:54:18 +0200 Subject: [PATCH 2/2] Allow building as dependency on docs.rs with no features enabled --- android-activity/build.rs | 21 +++++++++++++++++---- android-activity/src/game_activity/mod.rs | 2 -- android-activity/src/lib.rs | 16 +++++++++++++--- android-activity/src/native_activity/mod.rs | 2 -- 4 files changed, 30 insertions(+), 11 deletions(-) diff --git a/android-activity/build.rs b/android-activity/build.rs index 833ecaa..94e44b5 100644 --- a/android-activity/build.rs +++ b/android-activity/build.rs @@ -1,5 +1,3 @@ -#![allow(dead_code)] - fn build_glue_for_game_activity() { let android_games_sdk = std::env::var("ANDROID_GAMES_SDK").unwrap_or_else(|_err| "android-games-sdk".to_string()); @@ -94,6 +92,21 @@ fn build_glue_for_game_activity() { } fn main() { - #[cfg(feature = "game-activity")] - build_glue_for_game_activity(); + // Enable Cargo's change-detection to avoid re-running build script if + // irrelvant parts changed. Using build.rs here is just a dummy used to + // disable the default "rerun on every change" behaviour Cargo has. + println!("cargo:rerun-if-changed=build.rs"); + + if cfg!(feature = "game-activity") { + build_glue_for_game_activity(); + } + + // Whether this is used directly in or as a dependency on docs.rs. + // + // `cfg(docsrs)` cannot be used, since it's only set for the crate being + // built, and not for any dependent crates. + println!("cargo:rustc-check-cfg=cfg(used_on_docsrs)"); + if std::env::var("DOCS_RS").is_ok() { + println!("cargo:rustc-cfg=used_on_docsrs"); + } } diff --git a/android-activity/src/game_activity/mod.rs b/android-activity/src/game_activity/mod.rs index 70b6941..25207de 100644 --- a/android-activity/src/game_activity/mod.rs +++ b/android-activity/src/game_activity/mod.rs @@ -1,5 +1,3 @@ -#![cfg(feature = "game-activity")] - use std::collections::HashMap; use std::marker::PhantomData; use std::ops::Deref; diff --git a/android-activity/src/lib.rs b/android-activity/src/lib.rs index 42c207c..7a05078 100644 --- a/android-activity/src/lib.rs +++ b/android-activity/src/lib.rs @@ -141,7 +141,7 @@ compile_error!( ); #[cfg(all( not(any(feature = "game-activity", feature = "native-activity")), - not(doc) + not(any(doc, used_on_docsrs)), ))] compile_error!( r#"Either "game-activity" or "native-activity" must be enabled as features @@ -160,8 +160,18 @@ You may need to add a `[patch]` into your Cargo.toml to ensure a specific versio android-activity is used across all of your application's crates."# ); -#[cfg_attr(any(feature = "native-activity", doc), path = "native_activity/mod.rs")] -#[cfg_attr(any(feature = "game-activity", doc), path = "game_activity/mod.rs")] +#[cfg_attr(feature = "native-activity", path = "native_activity/mod.rs")] +#[cfg_attr(feature = "game-activity", path = "game_activity/mod.rs")] +#[cfg_attr( + all( + // No activities enabled. + not(any(feature = "native-activity", feature = "game-activity")), + // And building docs. + any(doc, used_on_docsrs), + ), + // Fall back to documenting native activity. + path = "native_activity/mod.rs" +)] pub(crate) mod activity_impl; pub mod error; diff --git a/android-activity/src/native_activity/mod.rs b/android-activity/src/native_activity/mod.rs index 88a9fe8..0bcb683 100644 --- a/android-activity/src/native_activity/mod.rs +++ b/android-activity/src/native_activity/mod.rs @@ -1,5 +1,3 @@ -#![cfg(any(feature = "native-activity", doc))] - use std::collections::HashMap; use std::marker::PhantomData; use std::panic::AssertUnwindSafe;