Add a nice install paths for module SDKs and exports.

Following how NDK also creates its own install path.

Bug: 142935992
Bug: 153306490
Test: cc_sdk_test.go, java_sdk_test.go
Merged-In: I98a3656903f37f6d7c90e6cf609431b2461a6161
Change-Id: I98a3656903f37f6d7c90e6cf609431b2461a6161
This commit is contained in:
Nicolas Geoffray
2020-02-27 13:45:35 +00:00
committed by Paul Duffin
parent 3a6c095145
commit a40f0b5db9
4 changed files with 50 additions and 9 deletions

View File

@@ -188,19 +188,22 @@ func (r *testSdkResult) getSdkSnapshotBuildInfo(sdk *sdk) *snapshotBuildInfo {
buildParams := sdk.BuildParamsForTests()
copyRules := &strings.Builder{}
otherCopyRules := &strings.Builder{}
snapshotDirPrefix := sdk.builderForTests.snapshotDir.String() + "/"
for _, bp := range buildParams {
switch bp.Rule.String() {
case android.Cp.String():
output := bp.Output
// Only check copies into the snapshot directory.
// Get destination relative to the snapshot root
dest := output.Rel()
src := android.NormalizePathForTesting(bp.Input)
// We differentiate between copy rules for the snapshot, and copy rules for the install file.
if strings.HasPrefix(output.String(), snapshotDirPrefix) {
// Get source relative to build directory.
src := android.NormalizePathForTesting(bp.Input)
// Get destination relative to the snapshot root
dest := output.Rel()
_, _ = fmt.Fprintf(copyRules, "%s -> %s\n", src, dest)
info.snapshotContents = append(info.snapshotContents, dest)
} else {
_, _ = fmt.Fprintf(otherCopyRules, "%s -> %s\n", src, dest)
}
case repackageZip.String():
@@ -234,6 +237,7 @@ func (r *testSdkResult) getSdkSnapshotBuildInfo(sdk *sdk) *snapshotBuildInfo {
}
info.copyRules = copyRules.String()
info.otherCopyRules = otherCopyRules.String()
return info
}
@@ -309,6 +313,13 @@ func checkAllCopyRules(expected string) snapshotBuildInfoChecker {
}
}
func checkAllOtherCopyRules(expected string) snapshotBuildInfoChecker {
return func(info *snapshotBuildInfo) {
info.r.t.Helper()
info.r.AssertTrimmedStringEquals("Incorrect copy rules", expected, info.otherCopyRules)
}
}
// Check that the specified path is in the list of zips to merge with the intermediate zip.
func checkMergeZip(expected string) snapshotBuildInfoChecker {
return func(info *snapshotBuildInfo) {
@@ -335,10 +346,14 @@ type snapshotBuildInfo struct {
// snapshot.
snapshotContents []string
// A formatted representation of the src/dest pairs, one pair per line, of the format
// src -> dest
// A formatted representation of the src/dest pairs for a snapshot, one pair per line,
// of the format src -> dest
copyRules string
// A formatted representation of the src/dest pairs for files not in a snapshot, one pair
// per line, of the format src -> dest
otherCopyRules string
// The path to the intermediate zip, which is a zip created from the source files copied
// into the snapshot directory and which will be merged with other zips to form the final output.
// Is am empty string if there is no intermediate zip because there are no zips to merge in.