diff --git a/Android.bp b/Android.bp index ef42c84c4..151e98bdd 100644 --- a/Android.bp +++ b/Android.bp @@ -435,7 +435,7 @@ toolchain_library { src: "prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/libwinpthread.a", }, }, - notice: "../../prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/licenses/mingw-w64-svn-r5861/mingw-w64-libraries/winpthreads/COPYING", + notice: ":mingw-libwinpthread-notice", } toolchain_library { diff --git a/android/androidmk.go b/android/androidmk.go index 493ba97e4..f15076800 100644 --- a/android/androidmk.go +++ b/android/androidmk.go @@ -277,8 +277,8 @@ func translateAndroidModule(ctx SingletonContext, w io.Writer, mod blueprint.Mod } } - if amod.commonProperties.Notice != nil { - fmt.Fprintln(&data.preamble, "LOCAL_NOTICE_FILE :=", "$(LOCAL_PATH)/"+*amod.commonProperties.Notice) + if amod.noticeFile != nil { + fmt.Fprintln(&data.preamble, "LOCAL_NOTICE_FILE :=", amod.noticeFile.String()) } if host { diff --git a/android/module.go b/android/module.go index bf49ca29b..f24930639 100644 --- a/android/module.go +++ b/android/module.go @@ -441,6 +441,7 @@ type ModuleBase struct { noAddressSanitizer bool installFiles Paths checkbuildFiles Paths + noticeFile Path // Used by buildTargetSingleton to create checkbuild and per-directory build targets // Only set on the final variant of each module @@ -789,6 +790,11 @@ func (a *ModuleBase) GenerateBuildActions(blueprintCtx blueprint.ModuleContext) a.installFiles = append(a.installFiles, ctx.installFiles...) a.checkbuildFiles = append(a.checkbuildFiles, ctx.checkbuildFiles...) + + if a.commonProperties.Notice != nil { + // For filegroup-based notice file references. + a.noticeFile = ctx.ExpandSource(*a.commonProperties.Notice, "notice") + } } if a == ctx.FinalModule().(Module).base() { diff --git a/android/mutator.go b/android/mutator.go index b9c44e83a..b77c2f091 100644 --- a/android/mutator.go +++ b/android/mutator.go @@ -207,6 +207,11 @@ func (mutator *mutator) Parallel() MutatorHandle { func depsMutator(ctx BottomUpMutatorContext) { if m, ok := ctx.Module().(Module); ok && m.Enabled() { m.DepsMutator(ctx) + + // For filegroup-based notice file references. + if m.base().commonProperties.Notice != nil { + ExtractSourceDeps(ctx, m.base().commonProperties.Notice) + } } }