diff --git a/apex/apex.go b/apex/apex.go index 3d7b45dd3..488d3d32f 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -488,9 +488,11 @@ type apexBundle struct { properties apexBundleProperties targetProperties apexTargetBundleProperties - vndkProperties apexVndkProperties overridableProperties overridableProperties + // specific to apex_vndk modules + vndkProperties apexVndkProperties + bundleModuleFile android.WritablePath outputFile android.WritablePath installDir android.InstallPath @@ -1278,6 +1280,7 @@ func DefaultsFactory(props ...interface{}) android.Module { module.AddProperties( &apexBundleProperties{}, &apexTargetBundleProperties{}, + &overridableProperties{}, ) android.InitDefaultsModule(module) diff --git a/apex/apex_test.go b/apex/apex_test.go index 4f0ab3a5f..0c6572bbf 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -532,6 +532,62 @@ func TestBasicApex(t *testing.T) { ensureListContains(t, noticeInputs, "custom_notice") } +func TestDefaults(t *testing.T) { + ctx, _ := testApex(t, ` + apex_defaults { + name: "myapex-defaults", + key: "myapex.key", + prebuilts: ["myetc"], + native_shared_libs: ["mylib"], + java_libs: ["myjar"], + apps: ["AppFoo"], + } + + prebuilt_etc { + name: "myetc", + src: "myprebuilt", + } + + apex { + name: "myapex", + defaults: ["myapex-defaults"], + } + + apex_key { + name: "myapex.key", + public_key: "testkey.avbpubkey", + private_key: "testkey.pem", + } + + cc_library { + name: "mylib", + system_shared_libs: [], + stl: "none", + } + + java_library { + name: "myjar", + srcs: ["foo/bar/MyClass.java"], + sdk_version: "none", + system_modules: "none", + compile_dex: true, + } + + android_app { + name: "AppFoo", + srcs: ["foo/bar/MyClass.java"], + sdk_version: "none", + system_modules: "none", + } + `) + ensureExactContents(t, ctx, "myapex", []string{ + "etc/myetc", + "javalib/myjar.jar", + "lib64/mylib.so", + "app/AppFoo/AppFoo.apk", + }) +} + func TestApexManifest(t *testing.T) { ctx, _ := testApex(t, ` apex {