Merge changes Iefcf4fbe,I450d4769,I1ffc7e7b am: 2c79c871d9
am: 3757864b5f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1354643 Change-Id: I35b96bffc99f9066982e6ea99332fb84c8f7a840
This commit is contained in:
10
apex/apex.go
10
apex/apex.go
@@ -1852,9 +1852,15 @@ func (a *apexBundle) WalkPayloadDeps(ctx android.ModuleContext, do android.Paylo
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dt := ctx.OtherModuleDependencyTag(child)
|
||||||
|
|
||||||
|
if _, ok := dt.(android.ExcludeFromApexContentsTag); ok {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// Check for the direct dependencies that contribute to the payload
|
// Check for the direct dependencies that contribute to the payload
|
||||||
if dt, ok := ctx.OtherModuleDependencyTag(child).(dependencyTag); ok {
|
if adt, ok := dt.(dependencyTag); ok {
|
||||||
if dt.payload {
|
if adt.payload {
|
||||||
return do(ctx, parent, am, false /* externalDep */)
|
return do(ctx, parent, am, false /* externalDep */)
|
||||||
}
|
}
|
||||||
// As soon as the dependency graph crosses the APEX boundary, don't go further.
|
// As soon as the dependency graph crosses the APEX boundary, don't go further.
|
||||||
|
@@ -5928,6 +5928,41 @@ func TestAllowedFiles(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNonPreferredPrebuiltDependency(t *testing.T) {
|
||||||
|
_, _ = 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"],
|
||||||
|
stubs: {
|
||||||
|
versions: ["10000"],
|
||||||
|
},
|
||||||
|
apex_available: ["myapex"],
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_prebuilt_library_shared {
|
||||||
|
name: "mylib",
|
||||||
|
prefer: false,
|
||||||
|
srcs: ["prebuilt.so"],
|
||||||
|
stubs: {
|
||||||
|
versions: ["10000"],
|
||||||
|
},
|
||||||
|
apex_available: ["myapex"],
|
||||||
|
}
|
||||||
|
`)
|
||||||
|
}
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
run := func() int {
|
run := func() int {
|
||||||
setUp()
|
setUp()
|
||||||
|
@@ -69,6 +69,28 @@ func TestSdkIsCompileMultilibBoth(t *testing.T) {
|
|||||||
ensureListContains(t, inputs, arm64Output.String())
|
ensureListContains(t, inputs, arm64Output.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSdkCompileMultilibOverride(t *testing.T) {
|
||||||
|
result := testSdkWithCc(t, `
|
||||||
|
sdk {
|
||||||
|
name: "mysdk",
|
||||||
|
native_shared_libs: ["sdkmember"],
|
||||||
|
compile_multilib: "64",
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_library_shared {
|
||||||
|
name: "sdkmember",
|
||||||
|
srcs: ["Test.cpp"],
|
||||||
|
stl: "none",
|
||||||
|
compile_multilib: "64",
|
||||||
|
}
|
||||||
|
`)
|
||||||
|
|
||||||
|
result.CheckSnapshot("mysdk", "",
|
||||||
|
checkAllCopyRules(`
|
||||||
|
.intermediates/sdkmember/android_arm64_armv8-a_shared/sdkmember.so -> arm64/lib/sdkmember.so
|
||||||
|
`))
|
||||||
|
}
|
||||||
|
|
||||||
func TestBasicSdkWithCc(t *testing.T) {
|
func TestBasicSdkWithCc(t *testing.T) {
|
||||||
result := testSdkWithCc(t, `
|
result := testSdkWithCc(t, `
|
||||||
sdk {
|
sdk {
|
||||||
@@ -79,6 +101,8 @@ func TestBasicSdkWithCc(t *testing.T) {
|
|||||||
cc_library_shared {
|
cc_library_shared {
|
||||||
name: "sdkmember",
|
name: "sdkmember",
|
||||||
system_shared_libs: [],
|
system_shared_libs: [],
|
||||||
|
stl: "none",
|
||||||
|
apex_available: ["mysdkapex"],
|
||||||
}
|
}
|
||||||
|
|
||||||
sdk_snapshot {
|
sdk_snapshot {
|
||||||
@@ -152,6 +176,13 @@ func TestBasicSdkWithCc(t *testing.T) {
|
|||||||
key: "myapex.key",
|
key: "myapex.key",
|
||||||
certificate: ":myapex.cert",
|
certificate: ":myapex.cert",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
apex {
|
||||||
|
name: "mysdkapex",
|
||||||
|
native_shared_libs: ["sdkmember"],
|
||||||
|
key: "myapex.key",
|
||||||
|
certificate: ":myapex.cert",
|
||||||
|
}
|
||||||
`)
|
`)
|
||||||
|
|
||||||
sdkMemberV1 := result.ModuleForTests("sdkmember_mysdk_1", "android_arm64_armv8-a_shared_myapex").Rule("toc").Output
|
sdkMemberV1 := result.ModuleForTests("sdkmember_mysdk_1", "android_arm64_armv8-a_shared_myapex").Rule("toc").Output
|
||||||
|
@@ -218,7 +218,7 @@ func newSdkModule(moduleExports bool) *sdk {
|
|||||||
Compile_multilib *string
|
Compile_multilib *string
|
||||||
}
|
}
|
||||||
p := &props{Compile_multilib: proptools.StringPtr("both")}
|
p := &props{Compile_multilib: proptools.StringPtr("both")}
|
||||||
ctx.AppendProperties(p)
|
ctx.PrependProperties(p)
|
||||||
})
|
})
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
@@ -330,6 +330,11 @@ type dependencyTag struct {
|
|||||||
blueprint.BaseDependencyTag
|
blueprint.BaseDependencyTag
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Mark this tag so dependencies that use it are excluded from APEX contents.
|
||||||
|
func (t dependencyTag) ExcludeFromApexContents() {}
|
||||||
|
|
||||||
|
var _ android.ExcludeFromApexContentsTag = dependencyTag{}
|
||||||
|
|
||||||
// For dependencies from an in-development version of an SDK member to frozen versions of the same member
|
// For dependencies from an in-development version of an SDK member to frozen versions of the same member
|
||||||
// e.g. libfoo -> libfoo.mysdk.11 and libfoo.mysdk.12
|
// e.g. libfoo -> libfoo.mysdk.11 and libfoo.mysdk.12
|
||||||
type sdkMemberVersionedDepTag struct {
|
type sdkMemberVersionedDepTag struct {
|
||||||
|
@@ -44,14 +44,15 @@ func testSdkContext(bp string, fs map[string][]byte) (*android.TestContext, andr
|
|||||||
` + cc.GatherRequiredDepsForTest(android.Android, android.Windows)
|
` + cc.GatherRequiredDepsForTest(android.Android, android.Windows)
|
||||||
|
|
||||||
mockFS := map[string][]byte{
|
mockFS := map[string][]byte{
|
||||||
"build/make/target/product/security": nil,
|
"build/make/target/product/security": nil,
|
||||||
"apex_manifest.json": nil,
|
"apex_manifest.json": nil,
|
||||||
"system/sepolicy/apex/myapex-file_contexts": nil,
|
"system/sepolicy/apex/myapex-file_contexts": nil,
|
||||||
"system/sepolicy/apex/myapex2-file_contexts": nil,
|
"system/sepolicy/apex/myapex2-file_contexts": nil,
|
||||||
"myapex.avbpubkey": nil,
|
"system/sepolicy/apex/mysdkapex-file_contexts": nil,
|
||||||
"myapex.pem": nil,
|
"myapex.avbpubkey": nil,
|
||||||
"myapex.x509.pem": nil,
|
"myapex.pem": nil,
|
||||||
"myapex.pk8": nil,
|
"myapex.x509.pem": nil,
|
||||||
|
"myapex.pk8": nil,
|
||||||
}
|
}
|
||||||
|
|
||||||
cc.GatherRequiredFilesForTest(mockFS)
|
cc.GatherRequiredFilesForTest(mockFS)
|
||||||
|
Reference in New Issue
Block a user