diff options
author | 2023-02-24 19:19:22 +0000 | |
---|---|---|
committer | 2023-02-24 19:21:08 +0000 | |
commit | 65a54a8e3d9dcf40da22a72ab5af054cfa23b236 (patch) | |
tree | aa25ecc0fd74477eb71c5354ad8c20fb1d044bb8 | |
parent | 5fba88bbd6fa8edc97dada1910db3d1eb35005a8 (diff) |
rust: Set android_vendor and android_product cfg
Add `android_vendor` and `android_product` cfgs, similar to
__ANDROID_VENDOR__ and __ANDROID_PRODUCT__ defines for C++
Bug: 270718001
Test: m nothing with added test
Change-Id: Ibeabe2983d1454e5a2ec0bb2f43e793b8f32a5c2
-rw-r--r-- | rust/compiler.go | 5 | ||||
-rw-r--r-- | rust/image_test.go | 30 |
2 files changed, 35 insertions, 0 deletions
diff --git a/rust/compiler.go b/rust/compiler.go index 31acd49cb..06ae12f79 100644 --- a/rust/compiler.go +++ b/rust/compiler.go @@ -269,6 +269,11 @@ func (compiler *baseCompiler) featureFlags(ctx ModuleContext, flags Flags) Flags func (compiler *baseCompiler) cfgFlags(ctx ModuleContext, flags Flags) Flags { if ctx.RustModule().UseVndk() { compiler.Properties.Cfgs = append(compiler.Properties.Cfgs, "android_vndk") + if ctx.RustModule().InVendor() { + compiler.Properties.Cfgs = append(compiler.Properties.Cfgs, "android_vendor") + } else if ctx.RustModule().InProduct() { + compiler.Properties.Cfgs = append(compiler.Properties.Cfgs, "android_product") + } } flags.RustFlags = append(flags.RustFlags, compiler.cfgsToFlags()...) diff --git a/rust/image_test.go b/rust/image_test.go index 818587218..fb4d9c170 100644 --- a/rust/image_test.go +++ b/rust/image_test.go @@ -53,6 +53,7 @@ func TestImageVndkCfgFlag(t *testing.T) { crate_name: "foo", srcs: ["foo.rs"], vendor_available: true, + product_available: true, } `) @@ -61,6 +62,35 @@ func TestImageVndkCfgFlag(t *testing.T) { if !strings.Contains(vendor.Args["rustcFlags"], "--cfg 'android_vndk'") { t.Errorf("missing \"--cfg 'android_vndk'\" for libfoo vendor variant, rustcFlags: %#v", vendor.Args["rustcFlags"]) } + if !strings.Contains(vendor.Args["rustcFlags"], "--cfg 'android_vendor'") { + t.Errorf("missing \"--cfg 'android_vendor'\" for libfoo vendor variant, rustcFlags: %#v", vendor.Args["rustcFlags"]) + } + if strings.Contains(vendor.Args["rustcFlags"], "--cfg 'android_product'") { + t.Errorf("unexpected \"--cfg 'android_product'\" for libfoo vendor variant, rustcFlags: %#v", vendor.Args["rustcFlags"]) + } + + product := ctx.ModuleForTests("libfoo", "android_product.29_arm64_armv8-a_static").Rule("rustc") + if !strings.Contains(product.Args["rustcFlags"], "--cfg 'android_vndk'") { + t.Errorf("missing \"--cfg 'android_vndk'\" for libfoo product variant, rustcFlags: %#v", product.Args["rustcFlags"]) + } + if strings.Contains(product.Args["rustcFlags"], "--cfg 'android_vendor'") { + t.Errorf("unexpected \"--cfg 'android_vendor'\" for libfoo product variant, rustcFlags: %#v", product.Args["rustcFlags"]) + } + if !strings.Contains(product.Args["rustcFlags"], "--cfg 'android_product'") { + t.Errorf("missing \"--cfg 'android_product'\" for libfoo product variant, rustcFlags: %#v", product.Args["rustcFlags"]) + } + + system := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_static").Rule("rustc") + if strings.Contains(system.Args["rustcFlags"], "--cfg 'android_vndk'") { + t.Errorf("unexpected \"--cfg 'android_vndk'\" for libfoo system variant, rustcFlags: %#v", system.Args["rustcFlags"]) + } + if strings.Contains(system.Args["rustcFlags"], "--cfg 'android_vendor'") { + t.Errorf("unexpected \"--cfg 'android_vendor'\" for libfoo system variant, rustcFlags: %#v", system.Args["rustcFlags"]) + } + if strings.Contains(system.Args["rustcFlags"], "--cfg 'android_product'") { + t.Errorf("unexpected \"--cfg 'android_product'\" for libfoo system variant, rustcFlags: %#v", product.Args["rustcFlags"]) + } + } // Test that cc modules can link against vendor_ramdisk_available rust_ffi_static libraries. |