Propagate missing dependencies when using whole_static_libs
Currently, whole_static_libs with missing dependencies are silently ignored. Instead, when getting the object files from the other module, add its missing dependencies to the current module. Change-Id: I12472dede2dfafdded56268bfd37f60063b637c4
This commit is contained in:
parent
eb371e51d9
commit
6553f5ef57
2 changed files with 26 additions and 0 deletions
18
cc/cc.go
18
cc/cc.go
|
@ -791,6 +791,13 @@ func (c *CCBase) depsToPaths(ctx common.AndroidModuleContext, depNames CCDeps) C
|
|||
|
||||
for _, m := range wholeStaticLibModules {
|
||||
if staticLib, ok := m.(ccLibraryInterface); ok && staticLib.static() {
|
||||
if missingDeps := staticLib.getWholeStaticMissingDeps(); missingDeps != nil {
|
||||
postfix := " (required by " + ctx.OtherModuleName(m) + ")"
|
||||
for i := range missingDeps {
|
||||
missingDeps[i] += postfix
|
||||
}
|
||||
ctx.AddMissingDependencies(missingDeps)
|
||||
}
|
||||
depPaths.WholeStaticLibObjFiles =
|
||||
append(depPaths.WholeStaticLibObjFiles, staticLib.allObjFiles()...)
|
||||
} else {
|
||||
|
@ -1136,6 +1143,10 @@ type CCLibrary struct {
|
|||
out common.Path
|
||||
systemLibs []string
|
||||
|
||||
// If we're used as a whole_static_lib, our missing dependencies need
|
||||
// to be given
|
||||
wholeStaticMissingDeps []string
|
||||
|
||||
LibraryProperties CCLibraryProperties
|
||||
}
|
||||
|
||||
|
@ -1154,6 +1165,7 @@ type ccLibraryInterface interface {
|
|||
getReuseFrom() ccLibraryInterface
|
||||
getReuseObjFiles() common.Paths
|
||||
allObjFiles() common.Paths
|
||||
getWholeStaticMissingDeps() []string
|
||||
}
|
||||
|
||||
var _ ccLibraryInterface = (*CCLibrary)(nil)
|
||||
|
@ -1224,6 +1236,10 @@ func (c *CCLibrary) allObjFiles() common.Paths {
|
|||
return c.objFiles
|
||||
}
|
||||
|
||||
func (c *CCLibrary) getWholeStaticMissingDeps() []string {
|
||||
return c.wholeStaticMissingDeps
|
||||
}
|
||||
|
||||
func (c *CCLibrary) exportedFlags() []string {
|
||||
return c.exportFlags
|
||||
}
|
||||
|
@ -1294,6 +1310,8 @@ func (c *CCLibrary) compileStaticLibrary(ctx common.AndroidModuleContext,
|
|||
TransformObjToStaticLib(ctx, objFiles, ccFlagsToBuilderFlags(flags), outputFile)
|
||||
}
|
||||
|
||||
c.wholeStaticMissingDeps = ctx.GetMissingDependencies()
|
||||
|
||||
c.objFiles = objFiles
|
||||
c.out = outputFile
|
||||
|
||||
|
|
|
@ -79,6 +79,8 @@ type AndroidModuleContext interface {
|
|||
InstallFile(installPath OutputPath, srcPath Path, deps ...Path) Path
|
||||
InstallFileName(installPath OutputPath, name string, srcPath Path, deps ...Path) Path
|
||||
CheckbuildFile(srcPath Path)
|
||||
|
||||
AddMissingDependencies(deps []string)
|
||||
}
|
||||
|
||||
type AndroidModule interface {
|
||||
|
@ -482,6 +484,12 @@ func (a *androidModuleContext) GetMissingDependencies() []string {
|
|||
return a.missingDeps
|
||||
}
|
||||
|
||||
func (a *androidModuleContext) AddMissingDependencies(deps []string) {
|
||||
if deps != nil {
|
||||
a.missingDeps = append(a.missingDeps, deps...)
|
||||
}
|
||||
}
|
||||
|
||||
func (a *androidBaseContextImpl) Arch() Arch {
|
||||
return a.arch
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue