Require libraries in header_libs to be cc_library_header am: 649d8174b8 am: c4fe1486ec

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1524479

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ibc8361a2b2f6f3a79ee27c17591133ca0ef58386
This commit is contained in:
Colin Cross
2020-12-15 19:03:09 +00:00
committed by Automerger Merge Worker
4 changed files with 36 additions and 10 deletions

View File

@@ -2411,7 +2411,14 @@ func (c *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
switch {
case libDepTag.header():
// nothing
if !ctx.OtherModuleHasProvider(dep, HeaderLibraryInfoProvider) {
if !ctx.Config().AllowMissingDependencies() {
ctx.ModuleErrorf("module %q is not a header library", depName)
} else {
ctx.AddMissingDependencies([]string{depName})
}
return
}
case libDepTag.shared():
if !ctx.OtherModuleHasProvider(dep, SharedLibraryInfoProvider) {
if !ctx.Config().AllowMissingDependencies() {

View File

@@ -897,6 +897,7 @@ func (library *libraryDecorator) linkStatic(ctx ModuleContext,
ctx.CheckbuildFile(outputFile)
if library.static() {
ctx.SetProvider(StaticLibraryInfoProvider, StaticLibraryInfo{
StaticLibrary: outputFile,
ReuseObjects: library.reuseObjects,
@@ -907,6 +908,11 @@ func (library *libraryDecorator) linkStatic(ctx ModuleContext,
Transitive(deps.TranstiveStaticLibrariesForOrdering).
Build(),
})
}
if library.header() {
ctx.SetProvider(HeaderLibraryInfoProvider, HeaderLibraryInfo{})
}
return outputFile
}

View File

@@ -130,6 +130,13 @@ type StaticLibraryInfo struct {
var StaticLibraryInfoProvider = blueprint.NewProvider(StaticLibraryInfo{})
// HeaderLibraryInfo is a marker provider that identifies a module as a header library.
type HeaderLibraryInfo struct {
}
// HeaderLibraryInfoProvider is a marker provider that identifies a module as a header library.
var HeaderLibraryInfoProvider = blueprint.NewProvider(HeaderLibraryInfo{})
// FlagExporterInfo is a provider to propagate transitive library information
// pertaining to exported include paths and flags.
type FlagExporterInfo struct {

View File

@@ -190,6 +190,12 @@ func (p *prebuiltLibraryLinker) link(ctx ModuleContext,
}
}
if p.header() {
ctx.SetProvider(HeaderLibraryInfoProvider, HeaderLibraryInfo{})
return nil
}
return nil
}