1 2--- 3 src/expand.rs | 4 ++-- 4 src/lib.rs | 13 +++++++++++-- 5 2 files changed, 13 insertions(+), 4 deletions(-) 6 7diff --git b/src/expand.rs a/src/expand.rs 8index 813ba85d..3d4e3148 100644 9--- b/src/expand.rs 10+++ a/src/expand.rs 11@@ -23,7 +23,7 @@ fn try_cfg(introducer: &str, args: TokenStream, input: TokenStream) -> Result<To 12 let expr = expr::parse(full_args)?; 13 token::parse_end(full_args)?; 14 15- if expr.eval(crate::RUSTVERSION) { 16+ if expr.eval(crate::rust_version()) { 17 Ok(input) 18 } else { 19 Ok(TokenStream::new()) 20@@ -31,7 +31,7 @@ fn try_cfg(introducer: &str, args: TokenStream, input: TokenStream) -> Result<To 21 } 22 23 pub fn try_attr(args: attr::Args, input: TokenStream) -> Result<TokenStream> { 24- if !args.condition.eval(crate::RUSTVERSION) { 25+ if !args.condition.eval(crate::rust_version()) { 26 return Ok(input); 27 } 28 29diff --git b/src/lib.rs a/src/lib.rs 30index 885af6e9..1bf0f1dc 100644 31--- b/src/lib.rs 32+++ a/src/lib.rs 33@@ -183,7 +183,16 @@ use crate::error::Error; 34 use crate::version::Version; 35 use proc_macro::TokenStream; 36 37-const RUSTVERSION: Version = include!(concat!(env!("OUT_DIR"), "/version.expr")); 38+// ANDROID: Soong is providing the version of rustc via an env variable. 39+const ANDROID_RUSTVERSION: Option<&str> = option_env!("ANDROID_RUST_VERSION"); 40+fn rust_version() -> Version { 41+ let v: Vec<&str> = ANDROID_RUSTVERSION.unwrap().split('.').collect(); 42+ Version { 43+ minor: v[1].parse().unwrap(), 44+ patch: v[2].parse().unwrap(), 45+ channel: version::Channel::Stable, 46+ } 47+} 48 49 #[proc_macro_attribute] 50 pub fn stable(args: TokenStream, input: TokenStream) -> TokenStream { 51@@ -240,7 +249,7 @@ pub fn cfg(input: TokenStream) -> TokenStream { 52 let ref mut args = iter::new(input); 53 let expr = expr::parse(args)?; 54 token::parse_end(args)?; 55- let boolean = expr.eval(RUSTVERSION); 56+ let boolean = expr.eval(rust_version()); 57 let ident = Ident::new(&boolean.to_string(), Span::call_site()); 58 Ok(TokenStream::from(TokenTree::Ident(ident))) 59 })() 60