From 100f3fd118b60a816f9ccc5477ad4372c469fafc Mon Sep 17 00:00:00 2001 From: Jiyong Park Date: Wed, 6 Nov 2019 16:03:32 +0900 Subject: [PATCH] sdk modules are by default compile_multilib: "both" Bug: 143948100 Test: m (sdk_test.go amended) Change-Id: I7df1b96af49a6569012e44eeb3c0722fac63fa51 --- sdk/sdk.go | 8 ++++++++ sdk/sdk_test.go | 29 +++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/sdk/sdk.go b/sdk/sdk.go index 002fb5dc7..cb81a1466 100644 --- a/sdk/sdk.go +++ b/sdk/sdk.go @@ -19,6 +19,7 @@ import ( "strconv" "github.com/google/blueprint" + "github.com/google/blueprint/proptools" "android/soong/android" // This package doesn't depend on the apex package, but import it to make its mutators to be @@ -60,6 +61,13 @@ func ModuleFactory() android.Module { s.AddProperties(&s.properties) android.InitAndroidMultiTargetsArchModule(s, android.HostAndDeviceSupported, android.MultilibCommon) android.InitDefaultableModule(s) + android.AddLoadHook(s, func(ctx android.LoadHookContext) { + type props struct { + Compile_multilib *string + } + p := &props{Compile_multilib: proptools.StringPtr("both")} + ctx.AppendProperties(p) + }) return s } diff --git a/sdk/sdk_test.go b/sdk/sdk_test.go index 664bb7c98..96129b838 100644 --- a/sdk/sdk_test.go +++ b/sdk/sdk_test.go @@ -377,6 +377,35 @@ func TestDepNotInRequiredSdks(t *testing.T) { `) } +func TestSdkIsCompileMultilibBoth(t *testing.T) { + ctx, _ := testSdk(t, ` + sdk { + name: "mysdk", + native_shared_libs: ["sdkmember"], + } + + cc_library_shared { + name: "sdkmember", + srcs: ["Test.cpp"], + system_shared_libs: [], + stl: "none", + } + `) + + armOutput := ctx.ModuleForTests("sdkmember", "android_arm_armv7-a-neon_core_shared").Module().(*cc.Module).OutputFile() + arm64Output := ctx.ModuleForTests("sdkmember", "android_arm64_armv8-a_core_shared").Module().(*cc.Module).OutputFile() + + var inputs []string + buildParams := ctx.ModuleForTests("mysdk", "android_common").Module().BuildParamsForTests() + for _, bp := range buildParams { + inputs = append(inputs, bp.Implicits.Strings()...) + } + + // ensure that both 32/64 outputs are inputs of the sdk snapshot + ensureListContains(t, inputs, armOutput.String()) + ensureListContains(t, inputs, arm64Output.String()) +} + var buildDir string func setUp() {