diff --git a/cc/compiler.go b/cc/compiler.go
index a0068ad..32d98e4 100644
--- a/cc/compiler.go
+++ b/cc/compiler.go
@@ -100,6 +100,7 @@
 
 type baseCompiler struct {
 	Properties BaseCompilerProperties
+	deps       android.Paths
 }
 
 var _ compiler = (*baseCompiler)(nil)
@@ -337,10 +338,21 @@
 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 @@
 }
 
 // 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 {
+func compileObjs(ctx android.ModuleContext, flags builderFlags,
+	subdir string, srcFiles, 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...)
-
-	return TransformSourceToObj(ctx, subdir, srcPaths, buildFlags, deps)
+	return TransformSourceToObj(ctx, subdir, srcFiles, flags, deps)
 }
