Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2c79c871 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge changes Iefcf4fbe,I450d4769,I1ffc7e7b

* changes:
  Prepend default to allow overriding in the bp file.
  Do not follow SDK member dependencies for APEX payloads.
  Do not follow prebuiltDependencyTags in APEX payload walks.
parents 4e740826 26ab8e80
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -1750,9 +1750,15 @@ func (a *apexBundle) WalkPayloadDeps(ctx android.ModuleContext, do android.Paylo
			return false
		}

		dt := ctx.OtherModuleDependencyTag(child)

		if _, ok := dt.(android.ExcludeFromApexContentsTag); ok {
			return false
		}

		// Check for the direct dependencies that contribute to the payload
		if dt, ok := ctx.OtherModuleDependencyTag(child).(dependencyTag); ok {
			if dt.payload {
		if adt, ok := dt.(dependencyTag); ok {
			if adt.payload {
				return do(ctx, parent, am, false /* externalDep */)
			}
			// As soon as the dependency graph crosses the APEX boundary, don't go further.
+35 −0
Original line number Diff line number Diff line
@@ -5791,6 +5791,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) {
	run := func() int {
		setUp()
+31 −0
Original line number Diff line number Diff line
@@ -69,6 +69,28 @@ func TestSdkIsCompileMultilibBoth(t *testing.T) {
	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) {
	result := testSdkWithCc(t, `
		sdk {
@@ -79,6 +101,8 @@ func TestBasicSdkWithCc(t *testing.T) {
		cc_library_shared {
			name: "sdkmember",
			system_shared_libs: [],
			stl: "none",
			apex_available: ["mysdkapex"],
		}

		sdk_snapshot {
@@ -152,6 +176,13 @@ func TestBasicSdkWithCc(t *testing.T) {
			key: "myapex.key",
			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
+6 −1
Original line number Diff line number Diff line
@@ -218,7 +218,7 @@ func newSdkModule(moduleExports bool) *sdk {
			Compile_multilib *string
		}
		p := &props{Compile_multilib: proptools.StringPtr("both")}
		ctx.AppendProperties(p)
		ctx.PrependProperties(p)
	})
	return s
}
@@ -330,6 +330,11 @@ type dependencyTag struct {
	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
// e.g. libfoo -> libfoo.mysdk.11 and libfoo.mysdk.12
type sdkMemberVersionedDepTag struct {
+9 −8
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ func testSdkContext(bp string, fs map[string][]byte) (*android.TestContext, andr
		"apex_manifest.json":                           nil,
		"system/sepolicy/apex/myapex-file_contexts":    nil,
		"system/sepolicy/apex/myapex2-file_contexts":   nil,
		"system/sepolicy/apex/mysdkapex-file_contexts": nil,
		"myapex.avbpubkey":                             nil,
		"myapex.pem":                                   nil,
		"myapex.x509.pem":                              nil,