diff options
author | Colin Cross <ccross@android.com> | 2020-02-19 16:54:04 -0800 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2020-04-27 14:45:05 -0700 |
commit | 01fd7ccbc71c9eee7c56c73f05c4e7833a795aac (patch) | |
tree | 44d0667ee1032391aacd028af29bebdd6381331d /java/app.go | |
parent | 1c93c299fb0036b823e821237a8e52febe82679a (diff) | |
download | build_soong-01fd7ccbc71c9eee7c56c73f05c4e7833a795aac.tar.gz build_soong-01fd7ccbc71c9eee7c56c73f05c4e7833a795aac.tar.bz2 build_soong-01fd7ccbc71c9eee7c56c73f05c4e7833a795aac.zip |
Add sdk mutator for native modules
Compiling native modules against the NDK disables platform features
like ASAN. For anything shipped on the system image there is no
reason to compile against the NDK. Add a new mutator to Soong that
creates a platform and an SDK variant for modules that set
sdk_version, and ignore sdk_version for the platform variant. The
SDK variant will be used for embedding in APKs that may be installed
on older platforms. Apexes use their own variants that enforce
backwards compatibility.
Test: sdk_test.go
Test: TestJNIPackaging
Bug: 149591340
Change-Id: I7d72934aaee2e1326cc0ba5f29f51f14feec4521
Merged-In: I7d72934aaee2e1326cc0ba5f29f51f14feec4521
(cherry picked from commit 82e192c3aeae55337e335101ba83126decd4ddac)
Diffstat (limited to 'java/app.go')
-rwxr-xr-x | java/app.go | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/java/app.go b/java/app.go index d9376540..f81a7646 100755 --- a/java/app.go +++ b/java/app.go @@ -218,6 +218,13 @@ func (a *AndroidApp) DepsMutator(ctx android.BottomUpMutatorContext) { for _, jniTarget := range ctx.MultiTargets() { variation := append(jniTarget.Variations(), blueprint.Variation{Mutator: "link", Variation: "shared"}) + + // If the app builds against an Android SDK use the SDK variant of JNI dependencies + // unless jni_uses_platform_apis is set. + if a.sdkVersion().specified() && a.sdkVersion().kind != sdkCorePlatform && + !Bool(a.appProperties.Jni_uses_platform_apis) { + variation = append(variation, blueprint.Variation{Mutator: "sdk", Variation: "sdk"}) + } ctx.AddFarVariationDependencies(variation, tag, a.appProperties.Jni_libs...) } |