diff options
-rw-r--r-- | apex/apex.go | 44 | ||||
-rw-r--r-- | cc/binary_sdk_member.go | 10 | ||||
-rw-r--r-- | cc/library_sdk_member.go | 19 | ||||
-rw-r--r-- | cc/sanitize.go | 20 |
4 files changed, 53 insertions, 40 deletions
diff --git a/apex/apex.go b/apex/apex.go index 84a1e7526..3c4ad1958 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -1321,26 +1321,30 @@ func addDependenciesForNativeModules(ctx android.BottomUpMutatorContext, // conflicting variations with this module. This is required since // arch variant of an APEX bundle is 'common' but it is 'arm' or 'arm64' // for native shared libs. - ctx.AddFarVariationDependencies(append(target.Variations(), []blueprint.Variation{ - {Mutator: "image", Variation: imageVariation}, - {Mutator: "link", Variation: "shared"}, - {Mutator: "version", Variation: ""}, // "" is the non-stub variant - }...), sharedLibTag, nativeModules.Native_shared_libs...) - - ctx.AddFarVariationDependencies(append(target.Variations(), []blueprint.Variation{ - {Mutator: "image", Variation: imageVariation}, - {Mutator: "link", Variation: "shared"}, - {Mutator: "version", Variation: ""}, // "" is the non-stub variant - }...), jniLibTag, nativeModules.Jni_libs...) - - ctx.AddFarVariationDependencies(append(target.Variations(), - blueprint.Variation{Mutator: "image", Variation: imageVariation}), - executableTag, nativeModules.Binaries...) - - ctx.AddFarVariationDependencies(append(target.Variations(), []blueprint.Variation{ - {Mutator: "image", Variation: imageVariation}, - {Mutator: "test_per_src", Variation: ""}, // "" is the all-tests variant - }...), testTag, nativeModules.Tests...) + + binVariations := target.Variations() + libVariations := append(target.Variations(), + blueprint.Variation{Mutator: "link", Variation: "shared"}) + testVariations := append(target.Variations(), + blueprint.Variation{Mutator: "test_per_src", Variation: ""}) // "" is the all-tests variant + + if ctx.Device() { + binVariations = append(binVariations, + blueprint.Variation{Mutator: "image", Variation: imageVariation}) + libVariations = append(libVariations, + blueprint.Variation{Mutator: "image", Variation: imageVariation}, + blueprint.Variation{Mutator: "version", Variation: ""}) // "" is the non-stub variant + testVariations = append(testVariations, + blueprint.Variation{Mutator: "image", Variation: imageVariation}) + } + + ctx.AddFarVariationDependencies(libVariations, sharedLibTag, nativeModules.Native_shared_libs...) + + ctx.AddFarVariationDependencies(libVariations, jniLibTag, nativeModules.Jni_libs...) + + ctx.AddFarVariationDependencies(binVariations, executableTag, nativeModules.Binaries...) + + ctx.AddFarVariationDependencies(testVariations, testTag, nativeModules.Tests...) } func (a *apexBundle) combineProperties(ctx android.BottomUpMutatorContext) { diff --git a/cc/binary_sdk_member.go b/cc/binary_sdk_member.go index 337de55b3..a1abc728a 100644 --- a/cc/binary_sdk_member.go +++ b/cc/binary_sdk_member.go @@ -46,9 +46,13 @@ func (mt *binarySdkMemberType) AddDependencies(mctx android.BottomUpMutatorConte if version == "" { version = LatestStubsVersionFor(mctx.Config(), name) } - mctx.AddFarVariationDependencies(append(target.Variations(), []blueprint.Variation{ - {Mutator: "version", Variation: version}, - }...), dependencyTag, name) + variations := target.Variations() + if mctx.Device() { + variations = append(variations, + blueprint.Variation{Mutator: "image", Variation: android.CoreVariation}, + blueprint.Variation{Mutator: "version", Variation: version}) + } + mctx.AddFarVariationDependencies(variations, dependencyTag, name) } } } diff --git a/cc/library_sdk_member.go b/cc/library_sdk_member.go index cff00b668..c975dd1e2 100644 --- a/cc/library_sdk_member.go +++ b/cc/library_sdk_member.go @@ -82,18 +82,19 @@ func (mt *librarySdkMemberType) AddDependencies(mctx android.BottomUpMutatorCont if version == "" { version = LatestStubsVersionFor(mctx.Config(), name) } + variations := target.Variations() + if mctx.Device() { + variations = append(variations, + blueprint.Variation{Mutator: "image", Variation: android.CoreVariation}, + blueprint.Variation{Mutator: "version", Variation: version}) + } if mt.linkTypes == nil { - mctx.AddFarVariationDependencies(append(target.Variations(), []blueprint.Variation{ - {Mutator: "image", Variation: android.CoreVariation}, - {Mutator: "version", Variation: version}, - }...), dependencyTag, name) + mctx.AddFarVariationDependencies(variations, dependencyTag, name) } else { for _, linkType := range mt.linkTypes { - mctx.AddFarVariationDependencies(append(target.Variations(), []blueprint.Variation{ - {Mutator: "image", Variation: android.CoreVariation}, - {Mutator: "link", Variation: linkType}, - {Mutator: "version", Variation: version}, - }...), dependencyTag, name) + libVariations := append(variations, + blueprint.Variation{Mutator: "link", Variation: linkType}) + mctx.AddFarVariationDependencies(libVariations, dependencyTag, name) } } } diff --git a/cc/sanitize.go b/cc/sanitize.go index 2243082ad..9bd416fb7 100644 --- a/cc/sanitize.go +++ b/cc/sanitize.go @@ -1011,10 +1011,12 @@ func sanitizerRuntimeMutator(mctx android.BottomUpMutatorContext) { // static executable gets static runtime libs depTag := libraryDependencyTag{Kind: staticLibraryDependency} - mctx.AddFarVariationDependencies(append(mctx.Target().Variations(), []blueprint.Variation{ - {Mutator: "link", Variation: "static"}, - c.ImageVariation(), - }...), depTag, deps...) + variations := append(mctx.Target().Variations(), + blueprint.Variation{Mutator: "link", Variation: "static"}) + if c.Device() { + variations = append(variations, c.ImageVariation()) + } + mctx.AddFarVariationDependencies(variations, depTag, deps...) } else if !c.static() && !c.header() { // If we're using snapshots and in vendor, redirect to snapshot whenever possible if c.VndkVersion() == mctx.DeviceConfig().VndkVersion() { @@ -1026,10 +1028,12 @@ func sanitizerRuntimeMutator(mctx android.BottomUpMutatorContext) { // dynamic executable and shared libs get shared runtime libs depTag := libraryDependencyTag{Kind: sharedLibraryDependency, Order: earlyLibraryDependency} - mctx.AddFarVariationDependencies(append(mctx.Target().Variations(), []blueprint.Variation{ - {Mutator: "link", Variation: "shared"}, - c.ImageVariation(), - }...), depTag, runtimeLibrary) + variations := append(mctx.Target().Variations(), + blueprint.Variation{Mutator: "link", Variation: "shared"}) + if c.Device() { + variations = append(variations, c.ImageVariation()) + } + mctx.AddFarVariationDependencies(variations, depTag, runtimeLibrary) } // static lib does not have dependency to the runtime library. The // dependency will be added to the executables or shared libs using |