Merge "track static deps when gatherint notices for apex" am: d21a743f73 am: ea55321af5 am: befbbf8b58 am: 5b96887cef

Change-Id: Ib4a7bdbae303d76eae5c4e0da7b6624da71e29d0
This commit is contained in:
Treehugger Robot
2020-03-18 02:18:06 +00:00
committed by Automerger Merge Worker
2 changed files with 26 additions and 14 deletions

View File

@@ -168,6 +168,7 @@ func testApexContext(t *testing.T, bp string, handlers ...testCustomizer) (*andr
"vendor/foo/devkeys/testkey.pem": nil,
"NOTICE": nil,
"custom_notice": nil,
"custom_notice_for_static_lib": nil,
"testkey2.avbpubkey": nil,
"testkey2.pem": nil,
"myapex-arm64.apex": nil,
@@ -372,6 +373,20 @@ func TestBasicApex(t *testing.T) {
system_shared_libs: [],
stl: "none",
notice: "custom_notice",
static_libs: ["libstatic"],
// TODO: remove //apex_available:platform
apex_available: [
"//apex_available:platform",
"myapex",
],
}
cc_library_static {
name: "libstatic",
srcs: ["mylib.cpp"],
system_shared_libs: [],
stl: "none",
notice: "custom_notice_for_static_lib",
// TODO: remove //apex_available:platform
apex_available: [
"//apex_available:platform",
@@ -470,11 +485,12 @@ func TestBasicApex(t *testing.T) {
mergeNoticesRule := ctx.ModuleForTests("myapex", "android_common_myapex_image").Rule("mergeNoticesRule")
noticeInputs := mergeNoticesRule.Inputs.Strings()
if len(noticeInputs) != 2 {
t.Errorf("number of input notice files: expected = 2, actual = %q", len(noticeInputs))
if len(noticeInputs) != 3 {
t.Errorf("number of input notice files: expected = 3, actual = %q", len(noticeInputs))
}
ensureListContains(t, noticeInputs, "NOTICE")
ensureListContains(t, noticeInputs, "custom_notice")
ensureListContains(t, noticeInputs, "custom_notice_for_static_lib")
depsInfo := strings.Split(ctx.ModuleForTests("myapex", "android_common_myapex_image").Output("myapex-deps-info.txt").Args["content"], "\\n")
ensureListContains(t, depsInfo, "myjar <- myapex")

View File

@@ -228,19 +228,15 @@ func (a *apexBundle) buildManifest(ctx android.ModuleContext, provideNativeLibs,
}
func (a *apexBundle) buildNoticeFiles(ctx android.ModuleContext, apexFileName string) android.NoticeOutputs {
noticeFiles := []android.Path{}
for _, f := range a.filesInfo {
if f.module != nil {
notices := f.module.NoticeFiles()
if len(notices) > 0 {
noticeFiles = append(noticeFiles, notices...)
}
var noticeFiles android.Paths
a.walkPayloadDeps(ctx, func(ctx android.ModuleContext, from blueprint.Module, to android.ApexModule, externalDep bool) {
if externalDep {
return
}
}
// append the notice file specified in the apex module itself
if len(a.NoticeFiles()) > 0 {
noticeFiles = append(noticeFiles, a.NoticeFiles()...)
}
notices := to.NoticeFiles()
noticeFiles = append(noticeFiles, notices...)
})
if len(noticeFiles) == 0 {
return android.NoticeOutputs{}