Annotate dependency tags for dependencies of installed files
Relands Ic22603a5c0718b5a21686672a7471f952b4d1017 with a minor change to track libc++ dependencies for python hosts and after a fix to an internal genrule that depended on transitively installed java libraries (ag/13068670). Soong currently assumes that installed files should depend on installed files of all transitive dependencies, which results in extra installed file dependencies through genrules, static libs, etc. Annotate dependency tags for dependencies for which the installed files are necessary such as shared libraries and JNI libraries. This avoids extra installed files, and is also a first step towards genrules using their own copy of tools instead of the installed copy. Bug: 124313442 Test: m checkbuild Test: java.TestBinary Test: cc.TestInstallSharedLibs Test: deptag_test.go Change-Id: I725871249d561428e6f67bba6a7c65b580012b72
This commit is contained in:
@@ -271,7 +271,7 @@ func newOsType(name string, class OsClass, defDisabled bool, archTypes ...ArchTy
|
||||
if _, found := commonTargetMap[name]; found {
|
||||
panic(fmt.Errorf("Found Os type duplicate during OsType registration: %q", name))
|
||||
} else {
|
||||
commonTargetMap[name] = Target{Os: os, Arch: Arch{ArchType: Common}}
|
||||
commonTargetMap[name] = Target{Os: os, Arch: CommonArch}
|
||||
}
|
||||
osArchTypeMap[os] = archTypes
|
||||
|
||||
@@ -341,6 +341,10 @@ var (
|
||||
// CommonOS is a pseudo OSType for a common OS variant, which is OsType agnostic and which
|
||||
// has dependencies on all the OS variants.
|
||||
CommonOS = newOsType("common_os", Generic, false)
|
||||
|
||||
// CommonArch is the Arch for all modules that are os-specific but not arch specific,
|
||||
// for example most Java modules.
|
||||
CommonArch = Arch{ArchType: Common}
|
||||
)
|
||||
|
||||
// Target specifies the OS and architecture that a module is being compiled for.
|
||||
@@ -511,9 +515,6 @@ type archDepTag struct {
|
||||
// Identifies the dependency from CommonOS variant to the os specific variants.
|
||||
var commonOsToOsSpecificVariantTag = archDepTag{name: "common os to os specific"}
|
||||
|
||||
// Identifies the dependency from arch variant to the common variant for a "common_first" multilib.
|
||||
var firstArchToCommonArchDepTag = archDepTag{name: "first arch to common arch"}
|
||||
|
||||
// Get the OsType specific variants for the current CommonOS variant.
|
||||
//
|
||||
// The returned list will only contain enabled OsType specific variants of the
|
||||
@@ -667,12 +668,6 @@ func archMutator(bpctx blueprint.BottomUpMutatorContext) {
|
||||
addTargetProperties(m, targets[i], multiTargets, i == 0)
|
||||
m.base().setArchProperties(mctx)
|
||||
}
|
||||
|
||||
if multilib == "common_first" && len(modules) >= 2 {
|
||||
for i := range modules[1:] {
|
||||
mctx.AddInterVariantDependency(firstArchToCommonArchDepTag, modules[i+1], modules[0])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// addTargetProperties annotates a variant with the Target is is being compiled for, the list
|
||||
|
Reference in New Issue
Block a user