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