Merge "Add compile-time pathDeps as implicit dependencies"
This commit is contained in:
@@ -290,7 +290,7 @@ func (a Objects) Append(b Objects) Objects {
|
|||||||
|
|
||||||
// Generate rules for compiling multiple .c, .cpp, or .S files to individual .o files
|
// Generate rules for compiling multiple .c, .cpp, or .S files to individual .o files
|
||||||
func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles android.Paths,
|
func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles android.Paths,
|
||||||
flags builderFlags, deps android.Paths) Objects {
|
flags builderFlags, pathDeps android.Paths, genDeps android.Paths) Objects {
|
||||||
|
|
||||||
objFiles := make(android.Paths, len(srcFiles))
|
objFiles := make(android.Paths, len(srcFiles))
|
||||||
var tidyFiles android.Paths
|
var tidyFiles android.Paths
|
||||||
@@ -363,7 +363,8 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and
|
|||||||
Description: "yasm " + srcFile.Rel(),
|
Description: "yasm " + srcFile.Rel(),
|
||||||
Output: objFile,
|
Output: objFile,
|
||||||
Input: srcFile,
|
Input: srcFile,
|
||||||
OrderOnly: deps,
|
Implicits: pathDeps,
|
||||||
|
OrderOnly: genDeps,
|
||||||
Args: map[string]string{
|
Args: map[string]string{
|
||||||
"asFlags": flags.yasmFlags,
|
"asFlags": flags.yasmFlags,
|
||||||
},
|
},
|
||||||
@@ -375,7 +376,8 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and
|
|||||||
Description: "windres " + srcFile.Rel(),
|
Description: "windres " + srcFile.Rel(),
|
||||||
Output: objFile,
|
Output: objFile,
|
||||||
Input: srcFile,
|
Input: srcFile,
|
||||||
OrderOnly: deps,
|
Implicits: pathDeps,
|
||||||
|
OrderOnly: genDeps,
|
||||||
Args: map[string]string{
|
Args: map[string]string{
|
||||||
"windresCmd": gccCmd(flags.toolchain, "windres"),
|
"windresCmd": gccCmd(flags.toolchain, "windres"),
|
||||||
"flags": flags.toolchain.WindresFlags(),
|
"flags": flags.toolchain.WindresFlags(),
|
||||||
@@ -443,7 +445,8 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and
|
|||||||
Output: objFile,
|
Output: objFile,
|
||||||
ImplicitOutputs: implicitOutputs,
|
ImplicitOutputs: implicitOutputs,
|
||||||
Input: srcFile,
|
Input: srcFile,
|
||||||
OrderOnly: deps,
|
Implicits: pathDeps,
|
||||||
|
OrderOnly: genDeps,
|
||||||
Args: map[string]string{
|
Args: map[string]string{
|
||||||
"cFlags": moduleCflags,
|
"cFlags": moduleCflags,
|
||||||
"ccCmd": ccCmd,
|
"ccCmd": ccCmd,
|
||||||
|
@@ -157,7 +157,8 @@ func NewBaseCompiler() *baseCompiler {
|
|||||||
type baseCompiler struct {
|
type baseCompiler struct {
|
||||||
Properties BaseCompilerProperties
|
Properties BaseCompilerProperties
|
||||||
Proto android.ProtoProperties
|
Proto android.ProtoProperties
|
||||||
deps android.Paths
|
genDeps android.Paths
|
||||||
|
pathDeps android.Paths
|
||||||
flags builderFlags
|
flags builderFlags
|
||||||
|
|
||||||
// Sources that were passed to the C/C++ compiler
|
// Sources that were passed to the C/C++ compiler
|
||||||
@@ -536,17 +537,16 @@ func (compiler *baseCompiler) compile(ctx ModuleContext, flags Flags, deps PathD
|
|||||||
srcs := append(android.Paths(nil), compiler.srcsBeforeGen...)
|
srcs := append(android.Paths(nil), compiler.srcsBeforeGen...)
|
||||||
|
|
||||||
srcs, genDeps := genSources(ctx, srcs, buildFlags)
|
srcs, genDeps := genSources(ctx, srcs, buildFlags)
|
||||||
|
|
||||||
pathDeps = append(pathDeps, genDeps...)
|
|
||||||
pathDeps = append(pathDeps, flags.CFlagsDeps...)
|
pathDeps = append(pathDeps, flags.CFlagsDeps...)
|
||||||
|
|
||||||
compiler.deps = pathDeps
|
compiler.pathDeps = pathDeps
|
||||||
|
compiler.genDeps = genDeps
|
||||||
|
|
||||||
// Save src, buildFlags and context
|
// Save src, buildFlags and context
|
||||||
compiler.srcs = srcs
|
compiler.srcs = srcs
|
||||||
|
|
||||||
// Compile files listed in c.Properties.Srcs into objects
|
// Compile files listed in c.Properties.Srcs into objects
|
||||||
objs := compileObjs(ctx, buildFlags, "", srcs, compiler.deps)
|
objs := compileObjs(ctx, buildFlags, "", srcs, pathDeps, genDeps)
|
||||||
|
|
||||||
if ctx.Failed() {
|
if ctx.Failed() {
|
||||||
return Objects{}
|
return Objects{}
|
||||||
@@ -557,7 +557,7 @@ func (compiler *baseCompiler) compile(ctx ModuleContext, flags Flags, deps PathD
|
|||||||
|
|
||||||
// Compile a list of source files into objects a specified subdirectory
|
// Compile a list of source files into objects a specified subdirectory
|
||||||
func compileObjs(ctx android.ModuleContext, flags builderFlags,
|
func compileObjs(ctx android.ModuleContext, flags builderFlags,
|
||||||
subdir string, srcFiles, deps android.Paths) Objects {
|
subdir string, srcFiles, pathDeps android.Paths, genDeps android.Paths) Objects {
|
||||||
|
|
||||||
return TransformSourceToObj(ctx, subdir, srcFiles, flags, deps)
|
return TransformSourceToObj(ctx, subdir, srcFiles, flags, pathDeps, genDeps)
|
||||||
}
|
}
|
||||||
|
@@ -384,11 +384,11 @@ func (library *libraryDecorator) compile(ctx ModuleContext, flags Flags, deps Pa
|
|||||||
if library.static() {
|
if library.static() {
|
||||||
srcs := android.PathsForModuleSrc(ctx, library.Properties.Static.Srcs)
|
srcs := android.PathsForModuleSrc(ctx, library.Properties.Static.Srcs)
|
||||||
objs = objs.Append(compileObjs(ctx, buildFlags, android.DeviceStaticLibrary,
|
objs = objs.Append(compileObjs(ctx, buildFlags, android.DeviceStaticLibrary,
|
||||||
srcs, library.baseCompiler.deps))
|
srcs, library.baseCompiler.pathDeps, library.baseCompiler.genDeps))
|
||||||
} else if library.shared() {
|
} else if library.shared() {
|
||||||
srcs := android.PathsForModuleSrc(ctx, library.Properties.Shared.Srcs)
|
srcs := android.PathsForModuleSrc(ctx, library.Properties.Shared.Srcs)
|
||||||
objs = objs.Append(compileObjs(ctx, buildFlags, android.DeviceSharedLibrary,
|
objs = objs.Append(compileObjs(ctx, buildFlags, android.DeviceSharedLibrary,
|
||||||
srcs, library.baseCompiler.deps))
|
srcs, library.baseCompiler.pathDeps, library.baseCompiler.genDeps))
|
||||||
}
|
}
|
||||||
|
|
||||||
return objs
|
return objs
|
||||||
@@ -671,8 +671,8 @@ func (library *libraryDecorator) link(ctx ModuleContext,
|
|||||||
}
|
}
|
||||||
library.reexportFlags(flags)
|
library.reexportFlags(flags)
|
||||||
library.reuseExportedFlags = append(library.reuseExportedFlags, flags...)
|
library.reuseExportedFlags = append(library.reuseExportedFlags, flags...)
|
||||||
library.reexportDeps(library.baseCompiler.deps) // TODO: restrict to aidl deps
|
library.reexportDeps(library.baseCompiler.genDeps) // TODO: restrict to aidl deps
|
||||||
library.reuseExportedDeps = append(library.reuseExportedDeps, library.baseCompiler.deps...)
|
library.reuseExportedDeps = append(library.reuseExportedDeps, library.baseCompiler.genDeps...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -684,8 +684,8 @@ func (library *libraryDecorator) link(ctx ModuleContext,
|
|||||||
}
|
}
|
||||||
library.reexportFlags(flags)
|
library.reexportFlags(flags)
|
||||||
library.reuseExportedFlags = append(library.reuseExportedFlags, flags...)
|
library.reuseExportedFlags = append(library.reuseExportedFlags, flags...)
|
||||||
library.reexportDeps(library.baseCompiler.deps) // TODO: restrict to proto deps
|
library.reexportDeps(library.baseCompiler.genDeps) // TODO: restrict to proto deps
|
||||||
library.reuseExportedDeps = append(library.reuseExportedDeps, library.baseCompiler.deps...)
|
library.reuseExportedDeps = append(library.reuseExportedDeps, library.baseCompiler.genDeps...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -288,7 +288,7 @@ func compileStubLibrary(ctx ModuleContext, flags Flags, symbolFile, apiLevel, vn
|
|||||||
|
|
||||||
subdir := ""
|
subdir := ""
|
||||||
srcs := []android.Path{stubSrcPath}
|
srcs := []android.Path{stubSrcPath}
|
||||||
return compileObjs(ctx, flagsToBuilderFlags(flags), subdir, srcs, nil), versionScriptPath
|
return compileObjs(ctx, flagsToBuilderFlags(flags), subdir, srcs, nil, nil), versionScriptPath
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *stubDecorator) compile(ctx ModuleContext, flags Flags, deps PathDeps) Objects {
|
func (c *stubDecorator) compile(ctx ModuleContext, flags Flags, deps PathDeps) Objects {
|
||||||
|
Reference in New Issue
Block a user