Export proto deps from reused libraries too

The deps have to be exported alongside the headers to make sure
the headers are in place when a module that depends on the shared
library builds.

Bug: 37555583
Test: use protos in a cc_library
Change-Id: I8f5b8d7937868458c1cf02b990a348aa395634da
This commit is contained in:
Colin Cross 2017-05-03 16:24:55 -07:00
parent 7c34c4c8eb
commit bbc9f4d586
2 changed files with 8 additions and 4 deletions

View File

@ -950,9 +950,10 @@ func (c *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
if tag == reuseObjTag {
if l, ok := cc.compiler.(libraryInterface); ok {
objs, flags := l.reuseObjs()
objs, flags, deps := l.reuseObjs()
depPaths.Objs = depPaths.Objs.Append(objs)
depPaths.ReexportedFlags = append(depPaths.ReexportedFlags, flags...)
depPaths.ReexportedFlagsDeps = append(depPaths.ReexportedFlagsDeps, deps...)
return
}
}

View File

@ -202,6 +202,7 @@ type libraryDecorator struct {
// For reusing static library objects for shared library
reuseObjects Objects
reuseExportedFlags []string
reuseExportedDeps android.Paths
// table-of-contents file to optimize out relinking when possible
tocFile android.OptionalPath
@ -364,7 +365,7 @@ type libraryInterface interface {
getWholeStaticMissingDeps() []string
static() bool
objs() Objects
reuseObjs() (Objects, []string)
reuseObjs() (Objects, []string, android.Paths)
toc() android.OptionalPath
// Returns true if the build options for the module have selected a static or shared build
@ -623,6 +624,7 @@ func (library *libraryDecorator) link(ctx ModuleContext,
library.reexportFlags(flags)
library.reuseExportedFlags = append(library.reuseExportedFlags, flags...)
library.reexportDeps(library.baseCompiler.deps) // TODO: restrict to aidl deps
library.reuseExportedDeps = append(library.reuseExportedDeps, library.baseCompiler.deps...)
}
}
@ -635,6 +637,7 @@ func (library *libraryDecorator) link(ctx ModuleContext,
library.reexportFlags(flags)
library.reuseExportedFlags = append(library.reuseExportedFlags, flags...)
library.reexportDeps(library.baseCompiler.deps) // TODO: restrict to proto deps
library.reuseExportedDeps = append(library.reuseExportedDeps, library.baseCompiler.deps...)
}
}
@ -659,8 +662,8 @@ func (library *libraryDecorator) objs() Objects {
return library.objects
}
func (library *libraryDecorator) reuseObjs() (Objects, []string) {
return library.reuseObjects, library.reuseExportedFlags
func (library *libraryDecorator) reuseObjs() (Objects, []string, android.Paths) {
return library.reuseObjects, library.reuseExportedFlags, library.reuseExportedDeps
}
func (library *libraryDecorator) toc() android.OptionalPath {