Merge "Don't use module names with "prebuilt_" prefixes in make dependencies." am: d348c41af5
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1515504 Change-Id: Id640558409539dd91f945f35786085afcbbf8fa3
This commit is contained in:
@@ -1666,7 +1666,7 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
// system libraries.
|
// system libraries.
|
||||||
if !am.DirectlyInAnyApex() {
|
if !am.DirectlyInAnyApex() {
|
||||||
// we need a module name for Make
|
// we need a module name for Make
|
||||||
name := cc.ImplementationModuleName(ctx)
|
name := cc.ImplementationModuleNameForMake(ctx)
|
||||||
|
|
||||||
if !proptools.Bool(a.properties.Use_vendor) {
|
if !proptools.Bool(a.properties.Use_vendor) {
|
||||||
// we don't use subName(.vendor) for a "use_vendor: true" apex
|
// we don't use subName(.vendor) for a "use_vendor: true" apex
|
||||||
|
@@ -6186,6 +6186,57 @@ func TestNonPreferredPrebuiltDependency(t *testing.T) {
|
|||||||
`)
|
`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPreferredPrebuiltSharedLibDep(t *testing.T) {
|
||||||
|
ctx, config := testApex(t, `
|
||||||
|
apex {
|
||||||
|
name: "myapex",
|
||||||
|
key: "myapex.key",
|
||||||
|
native_shared_libs: ["mylib"],
|
||||||
|
}
|
||||||
|
|
||||||
|
apex_key {
|
||||||
|
name: "myapex.key",
|
||||||
|
public_key: "testkey.avbpubkey",
|
||||||
|
private_key: "testkey.pem",
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_library {
|
||||||
|
name: "mylib",
|
||||||
|
srcs: ["mylib.cpp"],
|
||||||
|
apex_available: ["myapex"],
|
||||||
|
shared_libs: ["otherlib"],
|
||||||
|
system_shared_libs: [],
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_library {
|
||||||
|
name: "otherlib",
|
||||||
|
srcs: ["mylib.cpp"],
|
||||||
|
stubs: {
|
||||||
|
versions: ["current"],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_prebuilt_library_shared {
|
||||||
|
name: "otherlib",
|
||||||
|
prefer: true,
|
||||||
|
srcs: ["prebuilt.so"],
|
||||||
|
stubs: {
|
||||||
|
versions: ["current"],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
`)
|
||||||
|
|
||||||
|
ab := ctx.ModuleForTests("myapex", "android_common_myapex_image").Module().(*apexBundle)
|
||||||
|
data := android.AndroidMkDataForTest(t, config, "", ab)
|
||||||
|
var builder strings.Builder
|
||||||
|
data.Custom(&builder, ab.BaseModuleName(), "TARGET_", "", data)
|
||||||
|
androidMk := builder.String()
|
||||||
|
|
||||||
|
// The make level dependency needs to be on otherlib - prebuilt_otherlib isn't
|
||||||
|
// a thing there.
|
||||||
|
ensureContains(t, androidMk, "LOCAL_REQUIRED_MODULES += otherlib\n")
|
||||||
|
}
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
run := func() int {
|
run := func() int {
|
||||||
setUp()
|
setUp()
|
||||||
|
13
cc/cc.go
13
cc/cc.go
@@ -1099,6 +1099,19 @@ func (c *Module) ImplementationModuleName(ctx android.BaseModuleContext) string
|
|||||||
return name
|
return name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Similar to ImplementationModuleName, but uses the Make variant of the module
|
||||||
|
// name as base name, for use in AndroidMk output. E.g. for a prebuilt module
|
||||||
|
// where the Soong name is prebuilt_foo, this returns foo (which works in Make
|
||||||
|
// under the premise that the prebuilt module overrides its source counterpart
|
||||||
|
// if it is exposed to Make).
|
||||||
|
func (c *Module) ImplementationModuleNameForMake(ctx android.BaseModuleContext) string {
|
||||||
|
name := c.BaseModuleName()
|
||||||
|
if versioned, ok := c.linker.(versionedInterface); ok {
|
||||||
|
name = versioned.implementationModuleName(name)
|
||||||
|
}
|
||||||
|
return name
|
||||||
|
}
|
||||||
|
|
||||||
func (c *Module) bootstrap() bool {
|
func (c *Module) bootstrap() bool {
|
||||||
return Bool(c.Properties.Bootstrap)
|
return Bool(c.Properties.Bootstrap)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user