Add method to determine variations from a Target
The arch variants are hardcoded in every module type. Refactor them out into a Target.Variations() method in preparation for splitting the arch mutator into two, which will require using different variations. Test: m checkbuild Change-Id: I28ef7cd5168095ac888fe77f04e27f9ad81978c0
This commit is contained in:
@@ -199,19 +199,19 @@ func (a *AndroidMkEntries) fillInEntries(config Config, bpPath string, mod bluep
|
|||||||
switch amod.Os().Class {
|
switch amod.Os().Class {
|
||||||
case Host:
|
case Host:
|
||||||
// Make cannot identify LOCAL_MODULE_HOST_ARCH:= common.
|
// Make cannot identify LOCAL_MODULE_HOST_ARCH:= common.
|
||||||
if archStr != "common" {
|
if amod.Arch().ArchType != Common {
|
||||||
a.SetString("LOCAL_MODULE_HOST_ARCH", archStr)
|
a.SetString("LOCAL_MODULE_HOST_ARCH", archStr)
|
||||||
}
|
}
|
||||||
host = true
|
host = true
|
||||||
case HostCross:
|
case HostCross:
|
||||||
// Make cannot identify LOCAL_MODULE_HOST_CROSS_ARCH:= common.
|
// Make cannot identify LOCAL_MODULE_HOST_CROSS_ARCH:= common.
|
||||||
if archStr != "common" {
|
if amod.Arch().ArchType != Common {
|
||||||
a.SetString("LOCAL_MODULE_HOST_CROSS_ARCH", archStr)
|
a.SetString("LOCAL_MODULE_HOST_CROSS_ARCH", archStr)
|
||||||
}
|
}
|
||||||
host = true
|
host = true
|
||||||
case Device:
|
case Device:
|
||||||
// Make cannot identify LOCAL_MODULE_TARGET_ARCH:= common.
|
// Make cannot identify LOCAL_MODULE_TARGET_ARCH:= common.
|
||||||
if archStr != "common" {
|
if amod.Arch().ArchType != Common {
|
||||||
if amod.Target().NativeBridge {
|
if amod.Target().NativeBridge {
|
||||||
hostArchStr := amod.Target().NativeBridgeHostArchName
|
hostArchStr := amod.Target().NativeBridgeHostArchName
|
||||||
if hostArchStr != "" {
|
if hostArchStr != "" {
|
||||||
|
@@ -22,9 +22,12 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/google/blueprint"
|
||||||
"github.com/google/blueprint/proptools"
|
"github.com/google/blueprint/proptools"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const COMMON_VARIANT = "common"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
archTypeList []ArchType
|
archTypeList []ArchType
|
||||||
|
|
||||||
@@ -36,7 +39,7 @@ var (
|
|||||||
X86_64 = newArch("x86_64", "lib64")
|
X86_64 = newArch("x86_64", "lib64")
|
||||||
|
|
||||||
Common = ArchType{
|
Common = ArchType{
|
||||||
Name: "common",
|
Name: COMMON_VARIANT,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -702,11 +705,23 @@ type Target struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (target Target) String() string {
|
func (target Target) String() string {
|
||||||
variant := ""
|
return target.ArchVariation()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (target Target) ArchVariation() string {
|
||||||
|
var variation string
|
||||||
if target.NativeBridge {
|
if target.NativeBridge {
|
||||||
variant = "native_bridge_"
|
variation = "native_bridge_"
|
||||||
|
}
|
||||||
|
variation += target.Arch.String()
|
||||||
|
|
||||||
|
return target.Os.String() + "_" + variation
|
||||||
|
}
|
||||||
|
|
||||||
|
func (target Target) Variations() []blueprint.Variation {
|
||||||
|
return []blueprint.Variation{
|
||||||
|
{Mutator: "arch", Variation: target.ArchVariation()},
|
||||||
}
|
}
|
||||||
return target.Os.String() + "_" + variant + target.Arch.String()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// archMutator splits a module into a variant for each Target requested by the module. Target selection
|
// archMutator splits a module into a variant for each Target requested by the module. Target selection
|
||||||
|
@@ -89,9 +89,10 @@ type config struct {
|
|||||||
ConfigFileName string
|
ConfigFileName string
|
||||||
ProductVariablesFileName string
|
ProductVariablesFileName string
|
||||||
|
|
||||||
Targets map[OsType][]Target
|
Targets map[OsType][]Target
|
||||||
BuildOsVariant string
|
BuildOSTarget Target // the Target for tools run on the build machine
|
||||||
BuildOsCommonVariant string
|
BuildOSCommonTarget Target // the Target for common (java) tools run on the build machine
|
||||||
|
AndroidCommonTarget Target // the Target for common modules for the Android device
|
||||||
|
|
||||||
// multilibConflicts for an ArchType is true if there is earlier configured device architecture with the same
|
// multilibConflicts for an ArchType is true if there is earlier configured device architecture with the same
|
||||||
// multilib value.
|
// multilib value.
|
||||||
@@ -289,8 +290,9 @@ func TestArchConfig(buildDir string, env map[string]string) Config {
|
|||||||
config.Targets[BuildOs] = config.Targets[BuildOs][:1]
|
config.Targets[BuildOs] = config.Targets[BuildOs][:1]
|
||||||
}
|
}
|
||||||
|
|
||||||
config.BuildOsVariant = config.Targets[BuildOs][0].String()
|
config.BuildOSTarget = config.Targets[BuildOs][0]
|
||||||
config.BuildOsCommonVariant = getCommonTargets(config.Targets[BuildOs])[0].String()
|
config.BuildOSCommonTarget = getCommonTargets(config.Targets[BuildOs])[0]
|
||||||
|
config.AndroidCommonTarget = getCommonTargets(config.Targets[Android])[0]
|
||||||
config.TestProductVariables.DeviceArch = proptools.StringPtr("arm64")
|
config.TestProductVariables.DeviceArch = proptools.StringPtr("arm64")
|
||||||
config.TestProductVariables.DeviceArchVariant = proptools.StringPtr("armv8-a")
|
config.TestProductVariables.DeviceArchVariant = proptools.StringPtr("armv8-a")
|
||||||
config.TestProductVariables.DeviceSecondaryArch = proptools.StringPtr("arm")
|
config.TestProductVariables.DeviceSecondaryArch = proptools.StringPtr("arm")
|
||||||
@@ -374,8 +376,11 @@ func NewConfig(srcDir, buildDir string) (Config, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
config.Targets = targets
|
config.Targets = targets
|
||||||
config.BuildOsVariant = targets[BuildOs][0].String()
|
config.BuildOSTarget = config.Targets[BuildOs][0]
|
||||||
config.BuildOsCommonVariant = getCommonTargets(targets[BuildOs])[0].String()
|
config.BuildOSCommonTarget = getCommonTargets(config.Targets[BuildOs])[0]
|
||||||
|
if len(config.Targets[Android]) > 0 {
|
||||||
|
config.AndroidCommonTarget = getCommonTargets(config.Targets[Android])[0]
|
||||||
|
}
|
||||||
|
|
||||||
if err := config.fromEnv(); err != nil {
|
if err := config.fromEnv(); err != nil {
|
||||||
return Config{}, err
|
return Config{}, err
|
||||||
|
@@ -52,9 +52,8 @@ func ProtoDeps(ctx BottomUpMutatorContext, p *ProtoProperties) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if plugin := String(p.Proto.Plugin); plugin != "" {
|
if plugin := String(p.Proto.Plugin); plugin != "" {
|
||||||
ctx.AddFarVariationDependencies([]blueprint.Variation{
|
ctx.AddFarVariationDependencies(ctx.Config().BuildOSTarget.Variations(),
|
||||||
{Mutator: "arch", Variation: ctx.Config().BuildOsVariant},
|
ProtoPluginDepTag, "protoc-gen-"+plugin)
|
||||||
}, ProtoPluginDepTag, "protoc-gen-"+plugin)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
71
apex/apex.go
71
apex/apex.go
@@ -589,28 +589,25 @@ type apexBundle struct {
|
|||||||
|
|
||||||
func addDependenciesForNativeModules(ctx android.BottomUpMutatorContext,
|
func addDependenciesForNativeModules(ctx android.BottomUpMutatorContext,
|
||||||
native_shared_libs []string, binaries []string, tests []string,
|
native_shared_libs []string, binaries []string, tests []string,
|
||||||
arch string, imageVariation string) {
|
target android.Target, imageVariation string) {
|
||||||
// Use *FarVariation* to be able to depend on modules having
|
// Use *FarVariation* to be able to depend on modules having
|
||||||
// conflicting variations with this module. This is required since
|
// conflicting variations with this module. This is required since
|
||||||
// arch variant of an APEX bundle is 'common' but it is 'arm' or 'arm64'
|
// arch variant of an APEX bundle is 'common' but it is 'arm' or 'arm64'
|
||||||
// for native shared libs.
|
// for native shared libs.
|
||||||
ctx.AddFarVariationDependencies([]blueprint.Variation{
|
ctx.AddFarVariationDependencies(append(target.Variations(), []blueprint.Variation{
|
||||||
{Mutator: "arch", Variation: arch},
|
|
||||||
{Mutator: "image", Variation: imageVariation},
|
{Mutator: "image", Variation: imageVariation},
|
||||||
{Mutator: "link", Variation: "shared"},
|
{Mutator: "link", Variation: "shared"},
|
||||||
{Mutator: "version", Variation: ""}, // "" is the non-stub variant
|
{Mutator: "version", Variation: ""}, // "" is the non-stub variant
|
||||||
}, sharedLibTag, native_shared_libs...)
|
}...), sharedLibTag, native_shared_libs...)
|
||||||
|
|
||||||
ctx.AddFarVariationDependencies([]blueprint.Variation{
|
ctx.AddFarVariationDependencies(append(target.Variations(),
|
||||||
{Mutator: "arch", Variation: arch},
|
blueprint.Variation{Mutator: "image", Variation: imageVariation}),
|
||||||
{Mutator: "image", Variation: imageVariation},
|
executableTag, binaries...)
|
||||||
}, executableTag, binaries...)
|
|
||||||
|
|
||||||
ctx.AddFarVariationDependencies([]blueprint.Variation{
|
ctx.AddFarVariationDependencies(append(target.Variations(), []blueprint.Variation{
|
||||||
{Mutator: "arch", Variation: arch},
|
|
||||||
{Mutator: "image", Variation: imageVariation},
|
{Mutator: "image", Variation: imageVariation},
|
||||||
{Mutator: "test_per_src", Variation: ""}, // "" is the all-tests variant
|
{Mutator: "test_per_src", Variation: ""}, // "" is the all-tests variant
|
||||||
}, testTag, tests...)
|
}...), testTag, tests...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *apexBundle) combineProperties(ctx android.BottomUpMutatorContext) {
|
func (a *apexBundle) combineProperties(ctx android.BottomUpMutatorContext) {
|
||||||
@@ -642,49 +639,45 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) {
|
|||||||
for i, target := range targets {
|
for i, target := range targets {
|
||||||
// When multilib.* is omitted for native_shared_libs, it implies
|
// When multilib.* is omitted for native_shared_libs, it implies
|
||||||
// multilib.both.
|
// multilib.both.
|
||||||
ctx.AddFarVariationDependencies([]blueprint.Variation{
|
ctx.AddFarVariationDependencies(append(target.Variations(), []blueprint.Variation{
|
||||||
{Mutator: "arch", Variation: target.String()},
|
|
||||||
{Mutator: "image", Variation: a.getImageVariation(config)},
|
{Mutator: "image", Variation: a.getImageVariation(config)},
|
||||||
{Mutator: "link", Variation: "shared"},
|
{Mutator: "link", Variation: "shared"},
|
||||||
}, sharedLibTag, a.properties.Native_shared_libs...)
|
}...), sharedLibTag, a.properties.Native_shared_libs...)
|
||||||
|
|
||||||
// When multilib.* is omitted for tests, it implies
|
// When multilib.* is omitted for tests, it implies
|
||||||
// multilib.both.
|
// multilib.both.
|
||||||
ctx.AddFarVariationDependencies([]blueprint.Variation{
|
ctx.AddFarVariationDependencies(append(target.Variations(), []blueprint.Variation{
|
||||||
{Mutator: "arch", Variation: target.String()},
|
|
||||||
{Mutator: "image", Variation: a.getImageVariation(config)},
|
{Mutator: "image", Variation: a.getImageVariation(config)},
|
||||||
{Mutator: "test_per_src", Variation: ""}, // "" is the all-tests variant
|
{Mutator: "test_per_src", Variation: ""}, // "" is the all-tests variant
|
||||||
}, testTag, a.properties.Tests...)
|
}...), testTag, a.properties.Tests...)
|
||||||
|
|
||||||
// Add native modules targetting both ABIs
|
// Add native modules targetting both ABIs
|
||||||
addDependenciesForNativeModules(ctx,
|
addDependenciesForNativeModules(ctx,
|
||||||
a.properties.Multilib.Both.Native_shared_libs,
|
a.properties.Multilib.Both.Native_shared_libs,
|
||||||
a.properties.Multilib.Both.Binaries,
|
a.properties.Multilib.Both.Binaries,
|
||||||
a.properties.Multilib.Both.Tests,
|
a.properties.Multilib.Both.Tests,
|
||||||
target.String(),
|
target,
|
||||||
a.getImageVariation(config))
|
a.getImageVariation(config))
|
||||||
|
|
||||||
isPrimaryAbi := i == 0
|
isPrimaryAbi := i == 0
|
||||||
if isPrimaryAbi {
|
if isPrimaryAbi {
|
||||||
// When multilib.* is omitted for binaries, it implies
|
// When multilib.* is omitted for binaries, it implies
|
||||||
// multilib.first.
|
// multilib.first.
|
||||||
ctx.AddFarVariationDependencies([]blueprint.Variation{
|
ctx.AddFarVariationDependencies(append(target.Variations(),
|
||||||
{Mutator: "arch", Variation: target.String()},
|
blueprint.Variation{Mutator: "image", Variation: a.getImageVariation(config)}),
|
||||||
{Mutator: "image", Variation: a.getImageVariation(config)},
|
executableTag, a.properties.Binaries...)
|
||||||
}, executableTag, a.properties.Binaries...)
|
|
||||||
|
|
||||||
// Add native modules targetting the first ABI
|
// Add native modules targetting the first ABI
|
||||||
addDependenciesForNativeModules(ctx,
|
addDependenciesForNativeModules(ctx,
|
||||||
a.properties.Multilib.First.Native_shared_libs,
|
a.properties.Multilib.First.Native_shared_libs,
|
||||||
a.properties.Multilib.First.Binaries,
|
a.properties.Multilib.First.Binaries,
|
||||||
a.properties.Multilib.First.Tests,
|
a.properties.Multilib.First.Tests,
|
||||||
target.String(),
|
target,
|
||||||
a.getImageVariation(config))
|
a.getImageVariation(config))
|
||||||
|
|
||||||
// When multilib.* is omitted for prebuilts, it implies multilib.first.
|
// When multilib.* is omitted for prebuilts, it implies multilib.first.
|
||||||
ctx.AddFarVariationDependencies([]blueprint.Variation{
|
ctx.AddFarVariationDependencies(target.Variations(),
|
||||||
{Mutator: "arch", Variation: target.String()},
|
prebuiltTag, a.properties.Prebuilts...)
|
||||||
}, prebuiltTag, a.properties.Prebuilts...)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch target.Arch.ArchType.Multilib {
|
switch target.Arch.ArchType.Multilib {
|
||||||
@@ -694,14 +687,14 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) {
|
|||||||
a.properties.Multilib.Lib32.Native_shared_libs,
|
a.properties.Multilib.Lib32.Native_shared_libs,
|
||||||
a.properties.Multilib.Lib32.Binaries,
|
a.properties.Multilib.Lib32.Binaries,
|
||||||
a.properties.Multilib.Lib32.Tests,
|
a.properties.Multilib.Lib32.Tests,
|
||||||
target.String(),
|
target,
|
||||||
a.getImageVariation(config))
|
a.getImageVariation(config))
|
||||||
|
|
||||||
addDependenciesForNativeModules(ctx,
|
addDependenciesForNativeModules(ctx,
|
||||||
a.properties.Multilib.Prefer32.Native_shared_libs,
|
a.properties.Multilib.Prefer32.Native_shared_libs,
|
||||||
a.properties.Multilib.Prefer32.Binaries,
|
a.properties.Multilib.Prefer32.Binaries,
|
||||||
a.properties.Multilib.Prefer32.Tests,
|
a.properties.Multilib.Prefer32.Tests,
|
||||||
target.String(),
|
target,
|
||||||
a.getImageVariation(config))
|
a.getImageVariation(config))
|
||||||
case "lib64":
|
case "lib64":
|
||||||
// Add native modules targetting 64-bit ABI
|
// Add native modules targetting 64-bit ABI
|
||||||
@@ -709,7 +702,7 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) {
|
|||||||
a.properties.Multilib.Lib64.Native_shared_libs,
|
a.properties.Multilib.Lib64.Native_shared_libs,
|
||||||
a.properties.Multilib.Lib64.Binaries,
|
a.properties.Multilib.Lib64.Binaries,
|
||||||
a.properties.Multilib.Lib64.Tests,
|
a.properties.Multilib.Lib64.Tests,
|
||||||
target.String(),
|
target,
|
||||||
a.getImageVariation(config))
|
a.getImageVariation(config))
|
||||||
|
|
||||||
if !has32BitTarget {
|
if !has32BitTarget {
|
||||||
@@ -717,7 +710,7 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) {
|
|||||||
a.properties.Multilib.Prefer32.Native_shared_libs,
|
a.properties.Multilib.Prefer32.Native_shared_libs,
|
||||||
a.properties.Multilib.Prefer32.Binaries,
|
a.properties.Multilib.Prefer32.Binaries,
|
||||||
a.properties.Multilib.Prefer32.Tests,
|
a.properties.Multilib.Prefer32.Tests,
|
||||||
target.String(),
|
target,
|
||||||
a.getImageVariation(config))
|
a.getImageVariation(config))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -726,7 +719,7 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) {
|
|||||||
if sanitizer == "hwaddress" {
|
if sanitizer == "hwaddress" {
|
||||||
addDependenciesForNativeModules(ctx,
|
addDependenciesForNativeModules(ctx,
|
||||||
[]string{"libclang_rt.hwasan-aarch64-android"},
|
[]string{"libclang_rt.hwasan-aarch64-android"},
|
||||||
nil, nil, target.String(), a.getImageVariation(config))
|
nil, nil, target, a.getImageVariation(config))
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -735,13 +728,11 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.AddFarVariationDependencies([]blueprint.Variation{
|
ctx.AddFarVariationDependencies(ctx.Config().AndroidCommonTarget.Variations(),
|
||||||
{Mutator: "arch", Variation: "android_common"},
|
javaLibTag, a.properties.Java_libs...)
|
||||||
}, javaLibTag, a.properties.Java_libs...)
|
|
||||||
|
|
||||||
ctx.AddFarVariationDependencies([]blueprint.Variation{
|
ctx.AddFarVariationDependencies(ctx.Config().AndroidCommonTarget.Variations(),
|
||||||
{Mutator: "arch", Variation: "android_common"},
|
androidAppTag, a.properties.Apps...)
|
||||||
}, androidAppTag, a.properties.Apps...)
|
|
||||||
|
|
||||||
if String(a.properties.Key) == "" {
|
if String(a.properties.Key) == "" {
|
||||||
ctx.ModuleErrorf("key is missing")
|
ctx.ModuleErrorf("key is missing")
|
||||||
@@ -1645,17 +1636,17 @@ func (a *apexBundle) androidMkForFiles(w io.Writer, name, moduleDir string, apex
|
|||||||
host := false
|
host := false
|
||||||
switch fi.module.Target().Os.Class {
|
switch fi.module.Target().Os.Class {
|
||||||
case android.Host:
|
case android.Host:
|
||||||
if archStr != "common" {
|
if fi.module.Target().Arch.ArchType != android.Common {
|
||||||
fmt.Fprintln(w, "LOCAL_MODULE_HOST_ARCH :=", archStr)
|
fmt.Fprintln(w, "LOCAL_MODULE_HOST_ARCH :=", archStr)
|
||||||
}
|
}
|
||||||
host = true
|
host = true
|
||||||
case android.HostCross:
|
case android.HostCross:
|
||||||
if archStr != "common" {
|
if fi.module.Target().Arch.ArchType != android.Common {
|
||||||
fmt.Fprintln(w, "LOCAL_MODULE_HOST_CROSS_ARCH :=", archStr)
|
fmt.Fprintln(w, "LOCAL_MODULE_HOST_CROSS_ARCH :=", archStr)
|
||||||
}
|
}
|
||||||
host = true
|
host = true
|
||||||
case android.Device:
|
case android.Device:
|
||||||
if archStr != "common" {
|
if fi.module.Target().Arch.ArchType != android.Common {
|
||||||
fmt.Fprintln(w, "LOCAL_MODULE_TARGET_ARCH :=", archStr)
|
fmt.Fprintln(w, "LOCAL_MODULE_TARGET_ARCH :=", archStr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
7
cc/cc.go
7
cc/cc.go
@@ -1387,10 +1387,9 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) {
|
|||||||
depTag = headerExportDepTag
|
depTag = headerExportDepTag
|
||||||
}
|
}
|
||||||
if buildStubs {
|
if buildStubs {
|
||||||
actx.AddFarVariationDependencies([]blueprint.Variation{
|
actx.AddFarVariationDependencies(append(ctx.Target().Variations(),
|
||||||
{Mutator: "arch", Variation: ctx.Target().String()},
|
blueprint.Variation{Mutator: "image", Variation: c.imageVariation()}),
|
||||||
{Mutator: "image", Variation: c.imageVariation()},
|
depTag, lib)
|
||||||
}, depTag, lib)
|
|
||||||
} else {
|
} else {
|
||||||
actx.AddVariationDependencies(nil, depTag, lib)
|
actx.AddVariationDependencies(nil, depTag, lib)
|
||||||
}
|
}
|
||||||
|
@@ -878,18 +878,16 @@ func sanitizerRuntimeMutator(mctx android.BottomUpMutatorContext) {
|
|||||||
// added to libFlags and LOCAL_SHARED_LIBRARIES by cc.Module
|
// added to libFlags and LOCAL_SHARED_LIBRARIES by cc.Module
|
||||||
if c.staticBinary() {
|
if c.staticBinary() {
|
||||||
// static executable gets static runtime libs
|
// static executable gets static runtime libs
|
||||||
mctx.AddFarVariationDependencies([]blueprint.Variation{
|
mctx.AddFarVariationDependencies(append(mctx.Target().Variations(), []blueprint.Variation{
|
||||||
{Mutator: "link", Variation: "static"},
|
{Mutator: "link", Variation: "static"},
|
||||||
{Mutator: "image", Variation: c.imageVariation()},
|
{Mutator: "image", Variation: c.imageVariation()},
|
||||||
{Mutator: "arch", Variation: mctx.Target().String()},
|
}...), staticDepTag, runtimeLibrary)
|
||||||
}, staticDepTag, runtimeLibrary)
|
|
||||||
} else if !c.static() && !c.header() {
|
} else if !c.static() && !c.header() {
|
||||||
// dynamic executable and shared libs get shared runtime libs
|
// dynamic executable and shared libs get shared runtime libs
|
||||||
mctx.AddFarVariationDependencies([]blueprint.Variation{
|
mctx.AddFarVariationDependencies(append(mctx.Target().Variations(), []blueprint.Variation{
|
||||||
{Mutator: "link", Variation: "shared"},
|
{Mutator: "link", Variation: "shared"},
|
||||||
{Mutator: "image", Variation: c.imageVariation()},
|
{Mutator: "image", Variation: c.imageVariation()},
|
||||||
{Mutator: "arch", Variation: mctx.Target().String()},
|
}...), earlySharedDepTag, runtimeLibrary)
|
||||||
}, earlySharedDepTag, runtimeLibrary)
|
|
||||||
}
|
}
|
||||||
// static lib does not have dependency to the runtime library. The
|
// static lib does not have dependency to the runtime library. The
|
||||||
// dependency will be added to the executables or shared libs using
|
// dependency will be added to the executables or shared libs using
|
||||||
|
@@ -172,9 +172,7 @@ func (g *Module) DepsMutator(ctx android.BottomUpMutatorContext) {
|
|||||||
if m := android.SrcIsModule(tool); m != "" {
|
if m := android.SrcIsModule(tool); m != "" {
|
||||||
tool = m
|
tool = m
|
||||||
}
|
}
|
||||||
ctx.AddFarVariationDependencies([]blueprint.Variation{
|
ctx.AddFarVariationDependencies(ctx.Config().BuildOSTarget.Variations(), tag, tool)
|
||||||
{Mutator: "arch", Variation: ctx.Config().BuildOsVariant},
|
|
||||||
}, tag, tool)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -167,10 +167,8 @@ func (a *AndroidApp) DepsMutator(ctx android.BottomUpMutatorContext) {
|
|||||||
|
|
||||||
embedJni := a.shouldEmbedJnis(ctx)
|
embedJni := a.shouldEmbedJnis(ctx)
|
||||||
for _, jniTarget := range ctx.MultiTargets() {
|
for _, jniTarget := range ctx.MultiTargets() {
|
||||||
variation := []blueprint.Variation{
|
variation := append(jniTarget.Variations(),
|
||||||
{Mutator: "arch", Variation: jniTarget.String()},
|
blueprint.Variation{Mutator: "link", Variation: "shared"})
|
||||||
{Mutator: "link", Variation: "shared"},
|
|
||||||
}
|
|
||||||
tag := &jniDependencyTag{
|
tag := &jniDependencyTag{
|
||||||
target: jniTarget,
|
target: jniTarget,
|
||||||
}
|
}
|
||||||
|
@@ -18,8 +18,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
"github.com/google/blueprint"
|
|
||||||
|
|
||||||
"android/soong/android"
|
"android/soong/android"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -83,13 +81,13 @@ func HostForDeviceFactory() android.Module {
|
|||||||
var deviceHostConverterDepTag = dependencyTag{name: "device_host_converter"}
|
var deviceHostConverterDepTag = dependencyTag{name: "device_host_converter"}
|
||||||
|
|
||||||
func (d *DeviceForHost) DepsMutator(ctx android.BottomUpMutatorContext) {
|
func (d *DeviceForHost) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||||
variation := []blueprint.Variation{{Mutator: "arch", Variation: "android_common"}}
|
ctx.AddFarVariationDependencies(ctx.Config().AndroidCommonTarget.Variations(),
|
||||||
ctx.AddFarVariationDependencies(variation, deviceHostConverterDepTag, d.properties.Libs...)
|
deviceHostConverterDepTag, d.properties.Libs...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *HostForDevice) DepsMutator(ctx android.BottomUpMutatorContext) {
|
func (d *HostForDevice) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||||
variation := []blueprint.Variation{{Mutator: "arch", Variation: ctx.Config().BuildOsCommonVariant}}
|
ctx.AddFarVariationDependencies(ctx.Config().BuildOSCommonTarget.Variations(),
|
||||||
ctx.AddFarVariationDependencies(variation, deviceHostConverterDepTag, d.properties.Libs...)
|
deviceHostConverterDepTag, d.properties.Libs...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *DeviceHostConverter) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
func (d *DeviceHostConverter) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||||
|
@@ -60,7 +60,7 @@ func TestDeviceForHost(t *testing.T) {
|
|||||||
deviceImportModule := ctx.ModuleForTests("device_import_module", "android_common")
|
deviceImportModule := ctx.ModuleForTests("device_import_module", "android_common")
|
||||||
deviceImportCombined := deviceImportModule.Output("combined/device_import_module.jar")
|
deviceImportCombined := deviceImportModule.Output("combined/device_import_module.jar")
|
||||||
|
|
||||||
hostModule := ctx.ModuleForTests("host_module", config.BuildOsCommonVariant)
|
hostModule := ctx.ModuleForTests("host_module", config.BuildOSCommonTarget.String())
|
||||||
hostJavac := hostModule.Output("javac/host_module.jar")
|
hostJavac := hostModule.Output("javac/host_module.jar")
|
||||||
hostRes := hostModule.Output("res/host_module.jar")
|
hostRes := hostModule.Output("res/host_module.jar")
|
||||||
combined := hostModule.Output("combined/host_module.jar")
|
combined := hostModule.Output("combined/host_module.jar")
|
||||||
@@ -133,11 +133,11 @@ func TestHostForDevice(t *testing.T) {
|
|||||||
|
|
||||||
ctx, config := testJava(t, bp)
|
ctx, config := testJava(t, bp)
|
||||||
|
|
||||||
hostModule := ctx.ModuleForTests("host_module", config.BuildOsCommonVariant)
|
hostModule := ctx.ModuleForTests("host_module", config.BuildOSCommonTarget.String())
|
||||||
hostJavac := hostModule.Output("javac/host_module.jar")
|
hostJavac := hostModule.Output("javac/host_module.jar")
|
||||||
hostRes := hostModule.Output("res/host_module.jar")
|
hostRes := hostModule.Output("res/host_module.jar")
|
||||||
|
|
||||||
hostImportModule := ctx.ModuleForTests("host_import_module", config.BuildOsCommonVariant)
|
hostImportModule := ctx.ModuleForTests("host_import_module", config.BuildOSCommonTarget.String())
|
||||||
hostImportCombined := hostImportModule.Output("combined/host_import_module.jar")
|
hostImportCombined := hostImportModule.Output("combined/host_import_module.jar")
|
||||||
|
|
||||||
deviceModule := ctx.ModuleForTests("device_module", "android_common")
|
deviceModule := ctx.ModuleForTests("device_module", "android_common")
|
||||||
|
@@ -546,9 +546,7 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) {
|
|||||||
ctx.AddVariationDependencies(nil, libTag, j.properties.Libs...)
|
ctx.AddVariationDependencies(nil, libTag, j.properties.Libs...)
|
||||||
ctx.AddVariationDependencies(nil, staticLibTag, j.properties.Static_libs...)
|
ctx.AddVariationDependencies(nil, staticLibTag, j.properties.Static_libs...)
|
||||||
|
|
||||||
ctx.AddFarVariationDependencies([]blueprint.Variation{
|
ctx.AddFarVariationDependencies(ctx.Config().BuildOSCommonTarget.Variations(), pluginTag, j.properties.Plugins...)
|
||||||
{Mutator: "arch", Variation: ctx.Config().BuildOsCommonVariant},
|
|
||||||
}, pluginTag, j.properties.Plugins...)
|
|
||||||
|
|
||||||
android.ProtoDeps(ctx, &j.protoProperties)
|
android.ProtoDeps(ctx, &j.protoProperties)
|
||||||
if j.hasSrcExt(".proto") {
|
if j.hasSrcExt(".proto") {
|
||||||
|
@@ -306,22 +306,17 @@ func (p *Module) DepsMutator(ctx android.BottomUpMutatorContext) {
|
|||||||
if p.bootstrapper.autorun() {
|
if p.bootstrapper.autorun() {
|
||||||
launcherModule = "py2-launcher-autorun"
|
launcherModule = "py2-launcher-autorun"
|
||||||
}
|
}
|
||||||
ctx.AddFarVariationDependencies([]blueprint.Variation{
|
ctx.AddFarVariationDependencies(ctx.Target().Variations(), launcherTag, launcherModule)
|
||||||
{Mutator: "arch", Variation: ctx.Target().String()},
|
|
||||||
}, launcherTag, launcherModule)
|
|
||||||
|
|
||||||
// Add py2-launcher shared lib dependencies. Ideally, these should be
|
// Add py2-launcher shared lib dependencies. Ideally, these should be
|
||||||
// derived from the `shared_libs` property of "py2-launcher". However, we
|
// derived from the `shared_libs` property of "py2-launcher". However, we
|
||||||
// cannot read the property at this stage and it will be too late to add
|
// cannot read the property at this stage and it will be too late to add
|
||||||
// dependencies later.
|
// dependencies later.
|
||||||
ctx.AddFarVariationDependencies([]blueprint.Variation{
|
ctx.AddFarVariationDependencies(ctx.Target().Variations(), launcherSharedLibTag, "libsqlite")
|
||||||
{Mutator: "arch", Variation: ctx.Target().String()},
|
|
||||||
}, launcherSharedLibTag, "libsqlite")
|
|
||||||
|
|
||||||
if ctx.Target().Os.Bionic() {
|
if ctx.Target().Os.Bionic() {
|
||||||
ctx.AddFarVariationDependencies([]blueprint.Variation{
|
ctx.AddFarVariationDependencies(ctx.Target().Variations(), launcherSharedLibTag,
|
||||||
{Mutator: "arch", Variation: ctx.Target().String()},
|
"libc", "libdl", "libm")
|
||||||
}, launcherSharedLibTag, "libc", "libdl", "libm")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -496,7 +496,7 @@ func (mod *Module) DepsMutator(actx android.BottomUpMutatorContext) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// proc_macros are compiler plugins, and so we need the host arch variant as a dependendcy.
|
// proc_macros are compiler plugins, and so we need the host arch variant as a dependendcy.
|
||||||
actx.AddFarVariationDependencies([]blueprint.Variation{{Mutator: "arch", Variation: ctx.Config().BuildOsVariant}}, procMacroDepTag, deps.ProcMacros...)
|
actx.AddFarVariationDependencies(ctx.Config().BuildOSTarget.Variations(), procMacroDepTag, deps.ProcMacros...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (mod *Module) Name() string {
|
func (mod *Module) Name() string {
|
||||||
|
@@ -101,11 +101,10 @@ func memberMutator(mctx android.BottomUpMutatorContext) {
|
|||||||
|
|
||||||
targets := mctx.MultiTargets()
|
targets := mctx.MultiTargets()
|
||||||
for _, target := range targets {
|
for _, target := range targets {
|
||||||
mctx.AddFarVariationDependencies([]blueprint.Variation{
|
mctx.AddFarVariationDependencies(append(target.Variations(), []blueprint.Variation{
|
||||||
{Mutator: "arch", Variation: target.String()},
|
|
||||||
{Mutator: "image", Variation: "core"},
|
{Mutator: "image", Variation: "core"},
|
||||||
{Mutator: "link", Variation: "shared"},
|
{Mutator: "link", Variation: "shared"},
|
||||||
}, sdkMemberDepTag, m.properties.Native_shared_libs...)
|
}...), sdkMemberDepTag, m.properties.Native_shared_libs...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user