aboutsummaryrefslogtreecommitdiffstats
path: root/java/app.go
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2020-05-08 11:20:24 -0700
committerColin Cross <ccross@android.com>2020-05-08 20:30:27 -0700
commit1dd9c446be8311b6188de9332f94f5144025bdc5 (patch)
tree204c779cafc2c607e4dcb39f566d67e98b1608dc /java/app.go
parentf30c453df1fa05fe59a248421ea7c469e5ae1837 (diff)
downloadbuild_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-xjava/app.go13
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"})
}