diff options
author | Colin Cross <ccross@android.com> | 2018-08-29 14:10:52 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2018-08-30 16:31:02 +0000 |
commit | 42d48b7b8b94e301d703656db0b25bc5ee7eb3bc (patch) | |
tree | 377b5bdf4556fbb6a04bb436230fe6abcbe64157 /java/java.go | |
parent | b69575b1f697edae9f9b78765d50c8117d21f7d1 (diff) |
Enforce dependencies have right architecture
ctx.AddDependency will succeed if the named dependency only has a
single variant, even if that variant is the wrong architecture.
Use ctx.AddVariationDependency(nil, ...) instead, which requires
that all variations of the calling module match the dependency.
Bug: 112707915
Test: no change to out/soong/build.ninja
Test: using a device dependency in a host java module is an error
Change-Id: I70b661a57d4412eb63b8c9841febfb756e9e025d
Diffstat (limited to 'java/java.go')
-rw-r--r-- | java/java.go | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/java/java.go b/java/java.go index b911078b5..f6c94840b 100644 --- a/java/java.go +++ b/java/java.go @@ -552,41 +552,41 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) { if !Bool(j.properties.No_standard_libs) { sdkDep := decodeSdkDep(ctx, sdkContext(j)) if sdkDep.useDefaultLibs { - ctx.AddDependency(ctx.Module(), bootClasspathTag, config.DefaultBootclasspathLibraries...) + ctx.AddVariationDependencies(nil, bootClasspathTag, config.DefaultBootclasspathLibraries...) if ctx.Config().TargetOpenJDK9() { - ctx.AddDependency(ctx.Module(), systemModulesTag, config.DefaultSystemModules) + ctx.AddVariationDependencies(nil, systemModulesTag, config.DefaultSystemModules) } if !Bool(j.properties.No_framework_libs) { - ctx.AddDependency(ctx.Module(), libTag, config.DefaultLibraries...) + ctx.AddVariationDependencies(nil, libTag, config.DefaultLibraries...) } } else if sdkDep.useModule { if ctx.Config().TargetOpenJDK9() { - ctx.AddDependency(ctx.Module(), systemModulesTag, sdkDep.systemModules) + ctx.AddVariationDependencies(nil, systemModulesTag, sdkDep.systemModules) } - ctx.AddDependency(ctx.Module(), bootClasspathTag, sdkDep.modules...) + ctx.AddVariationDependencies(nil, bootClasspathTag, sdkDep.modules...) if Bool(j.deviceProperties.Optimize.Enabled) { - ctx.AddDependency(ctx.Module(), proguardRaiseTag, config.DefaultBootclasspathLibraries...) - ctx.AddDependency(ctx.Module(), proguardRaiseTag, config.DefaultLibraries...) + ctx.AddVariationDependencies(nil, proguardRaiseTag, config.DefaultBootclasspathLibraries...) + ctx.AddVariationDependencies(nil, proguardRaiseTag, config.DefaultLibraries...) } } } else if j.deviceProperties.System_modules == nil { ctx.PropertyErrorf("no_standard_libs", "system_modules is required to be set when no_standard_libs is true, did you mean no_framework_libs?") } else if *j.deviceProperties.System_modules != "none" && ctx.Config().TargetOpenJDK9() { - ctx.AddDependency(ctx.Module(), systemModulesTag, *j.deviceProperties.System_modules) + ctx.AddVariationDependencies(nil, systemModulesTag, *j.deviceProperties.System_modules) } if ctx.ModuleName() == "framework" { - ctx.AddDependency(ctx.Module(), frameworkResTag, "framework-res") + ctx.AddVariationDependencies(nil, frameworkResTag, "framework-res") } if ctx.ModuleName() == "android_stubs_current" || ctx.ModuleName() == "android_system_stubs_current" || ctx.ModuleName() == "android_test_stubs_current" { - ctx.AddDependency(ctx.Module(), frameworkApkTag, "framework-res") + ctx.AddVariationDependencies(nil, frameworkApkTag, "framework-res") } } - ctx.AddDependency(ctx.Module(), libTag, j.properties.Libs...) - ctx.AddDependency(ctx.Module(), staticLibTag, j.properties.Static_libs...) + ctx.AddVariationDependencies(nil, libTag, j.properties.Libs...) + ctx.AddVariationDependencies(nil, staticLibTag, j.properties.Static_libs...) ctx.AddFarVariationDependencies([]blueprint.Variation{ {Mutator: "arch", Variation: ctx.Config().BuildOsCommonVariant}, }, annoTag, j.properties.Annotation_processors...) @@ -602,11 +602,11 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) { if j.hasSrcExt(".kt") { // TODO(ccross): move this to a mutator pass that can tell if generated sources contain // Kotlin files - ctx.AddDependency(ctx.Module(), kotlinStdlibTag, "kotlin-stdlib") + ctx.AddVariationDependencies(nil, kotlinStdlibTag, "kotlin-stdlib") } if j.shouldInstrumentStatic(ctx) { - ctx.AddDependency(ctx.Module(), staticLibTag, "jacocoagent") + ctx.AddVariationDependencies(nil, staticLibTag, "jacocoagent") } } @@ -1619,7 +1619,7 @@ func (j *Import) Name() string { func (j *Import) DepsMutator(ctx android.BottomUpMutatorContext) { android.ExtractSourcesDeps(ctx, j.properties.Jars) - ctx.AddDependency(ctx.Module(), libTag, j.properties.Libs...) + ctx.AddVariationDependencies(nil, libTag, j.properties.Libs...) } func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) { |