aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cc/compiler.go33
-rw-r--r--cc/library.go26
-rw-r--r--cc/ndk_library.go8
3 files changed, 31 insertions, 36 deletions
diff --git a/cc/compiler.go b/cc/compiler.go
index a0068ada..32d98e4a 100644
--- a/cc/compiler.go
+++ b/cc/compiler.go
@@ -100,6 +100,7 @@ func NewBaseCompiler() *baseCompiler {
type baseCompiler struct {
Properties BaseCompilerProperties
+ deps android.Paths
}
var _ compiler = (*baseCompiler)(nil)
@@ -337,10 +338,21 @@ func ndkPathDeps(ctx ModuleContext) android.Paths {
func (compiler *baseCompiler) compile(ctx ModuleContext, flags Flags, deps PathDeps) android.Paths {
pathDeps := deps.GeneratedHeaders
pathDeps = append(pathDeps, ndkPathDeps(ctx)...)
+
+ srcs := ctx.ExpandSources(compiler.Properties.Srcs, compiler.Properties.Exclude_srcs)
+ srcs = append(srcs, deps.GeneratedSources...)
+
+ buildFlags := flagsToBuilderFlags(flags)
+
+ srcs, genDeps := genSources(ctx, srcs, buildFlags)
+
+ pathDeps = append(pathDeps, genDeps...)
+ pathDeps = append(pathDeps, flags.CFlagsDeps...)
+
+ compiler.deps = pathDeps
+
// Compile files listed in c.Properties.Srcs into objects
- objFiles := compileObjs(ctx, flags, "",
- compiler.Properties.Srcs, compiler.Properties.Exclude_srcs,
- deps.GeneratedSources, pathDeps)
+ objFiles := compileObjs(ctx, buildFlags, "", srcs, compiler.deps)
if ctx.Failed() {
return nil
@@ -350,17 +362,8 @@ func (compiler *baseCompiler) compile(ctx ModuleContext, flags Flags, deps PathD
}
// Compile a list of source files into objects a specified subdirectory
-func compileObjs(ctx android.ModuleContext, flags Flags,
- subdir string, srcFiles, excludes []string, extraSrcs, deps android.Paths) android.Paths {
-
- buildFlags := flagsToBuilderFlags(flags)
-
- inputFiles := ctx.ExpandSources(srcFiles, excludes)
- inputFiles = append(inputFiles, extraSrcs...)
- srcPaths, gendeps := genSources(ctx, inputFiles, buildFlags)
-
- deps = append(deps, gendeps...)
- deps = append(deps, flags.CFlagsDeps...)
+func compileObjs(ctx android.ModuleContext, flags builderFlags,
+ subdir string, srcFiles, deps android.Paths) android.Paths {
- return TransformSourceToObj(ctx, subdir, srcPaths, buildFlags, deps)
+ return TransformSourceToObj(ctx, subdir, srcFiles, flags, deps)
}
diff --git a/cc/library.go b/cc/library.go
index a61e6a10..d3d142e5 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -25,9 +25,8 @@ import (
type LibraryProperties struct {
Static struct {
- Srcs []string `android:"arch_variant"`
- Exclude_srcs []string `android:"arch_variant"`
- Cflags []string `android:"arch_variant"`
+ Srcs []string `android:"arch_variant"`
+ Cflags []string `android:"arch_variant"`
Enabled *bool `android:"arch_variant"`
Whole_static_libs []string `android:"arch_variant"`
@@ -35,9 +34,8 @@ type LibraryProperties struct {
Shared_libs []string `android:"arch_variant"`
} `android:"arch_variant"`
Shared struct {
- Srcs []string `android:"arch_variant"`
- Exclude_srcs []string `android:"arch_variant"`
- Cflags []string `android:"arch_variant"`
+ Srcs []string `android:"arch_variant"`
+ Cflags []string `android:"arch_variant"`
Enabled *bool `android:"arch_variant"`
Whole_static_libs []string `android:"arch_variant"`
@@ -253,18 +251,16 @@ func (library *libraryDecorator) compile(ctx ModuleContext, flags Flags, deps Pa
objFiles = library.baseCompiler.compile(ctx, flags, deps)
library.reuseObjFiles = objFiles
-
- pathDeps := deps.GeneratedHeaders
- pathDeps = append(pathDeps, ndkPathDeps(ctx)...)
+ buildFlags := flagsToBuilderFlags(flags)
if library.static() {
- objFiles = append(objFiles, compileObjs(ctx, flags, android.DeviceStaticLibrary,
- library.Properties.Static.Srcs, library.Properties.Static.Exclude_srcs,
- nil, pathDeps)...)
+ srcs := android.PathsForModuleSrc(ctx, library.Properties.Static.Srcs)
+ objFiles = append(objFiles, compileObjs(ctx, buildFlags, android.DeviceStaticLibrary,
+ srcs, library.baseCompiler.deps)...)
} else {
- objFiles = append(objFiles, compileObjs(ctx, flags, android.DeviceSharedLibrary,
- library.Properties.Shared.Srcs, library.Properties.Shared.Exclude_srcs,
- nil, pathDeps)...)
+ srcs := android.PathsForModuleSrc(ctx, library.Properties.Shared.Srcs)
+ objFiles = append(objFiles, compileObjs(ctx, buildFlags, android.DeviceSharedLibrary,
+ srcs, library.baseCompiler.deps)...)
}
return objFiles
diff --git a/cc/ndk_library.go b/cc/ndk_library.go
index 37ce2687..6b0c325e 100644
--- a/cc/ndk_library.go
+++ b/cc/ndk_library.go
@@ -227,12 +227,8 @@ func (c *stubDecorator) compile(ctx ModuleContext, flags Flags, deps PathDeps) a
)
subdir := ""
- srcs := []string{}
- excludeSrcs := []string{}
- extraSrcs := []android.Path{stubSrcPath}
- extraDeps := []android.Path{}
- return compileObjs(ctx, flags, subdir, srcs, excludeSrcs,
- extraSrcs, extraDeps)
+ srcs := []android.Path{stubSrcPath}
+ return compileObjs(ctx, flagsToBuilderFlags(flags), subdir, srcs, nil)
}
func (linker *stubDecorator) linkerDeps(ctx BaseModuleContext, deps Deps) Deps {