diff options
author | Colin Cross <ccross@android.com> | 2020-05-08 11:20:24 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2020-05-08 20:30:27 -0700 |
commit | 1dd9c446be8311b6188de9332f94f5144025bdc5 (patch) | |
tree | 204c779cafc2c607e4dcb39f566d67e98b1608dc /java/app.go | |
parent | f30c453df1fa05fe59a248421ea7c469e5ae1837 (diff) | |
download | build_soong-1dd9c446be8311b6188de9332f94f5144025bdc5.tar.gz build_soong-1dd9c446be8311b6188de9332f94f5144025bdc5.tar.bz2 build_soong-1dd9c446be8311b6188de9332f94f5144025bdc5.zip |
Add error checking and tests for jni_uses_sdk_apis and jni_uses_platform_apis
Check that jni_uses_sdk_apis and jni_uses_platform_apis are consistent
with sdk_version, and add tests that they select the right variant.
Bug: 154665579
Test: app_test.go
Change-Id: I544a4f881ba16dacd7e74cd480c095091b3cf667
Merged-In: I544a4f881ba16dacd7e74cd480c095091b3cf667
(cherry picked from commit 3c007704c74a891bf2c5dba60bf82bd789659762)
Diffstat (limited to 'java/app.go')
-rwxr-xr-x | java/app.go | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/java/app.go b/java/app.go index eac76fda..baae97a9 100755 --- a/java/app.go +++ b/java/app.go @@ -230,6 +230,16 @@ func (a *AndroidApp) DepsMutator(ctx android.BottomUpMutatorContext) { a.aapt.deps(ctx, sdkDep) } + usesSDK := a.sdkVersion().specified() && a.sdkVersion().kind != sdkCorePlatform + + if usesSDK && Bool(a.appProperties.Jni_uses_sdk_apis) { + ctx.PropertyErrorf("jni_uses_sdk_apis", + "can only be set for modules that do not set sdk_version") + } else if !usesSDK && Bool(a.appProperties.Jni_uses_platform_apis) { + ctx.PropertyErrorf("jni_uses_platform_apis", + "can only be set for modules that set sdk_version") + } + tag := &jniDependencyTag{} for _, jniTarget := range ctx.MultiTargets() { variation := append(jniTarget.Variations(), @@ -237,8 +247,7 @@ func (a *AndroidApp) DepsMutator(ctx android.BottomUpMutatorContext) { // 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) || + if (usesSDK && !Bool(a.appProperties.Jni_uses_platform_apis)) || Bool(a.appProperties.Jni_uses_sdk_apis) { variation = append(variation, blueprint.Variation{Mutator: "sdk", Variation: "sdk"}) } |