cc: add exclude_generated_sources property
generated_sources needs exclude_* just like that srcs needs exclude_srcs
to support variant-specific exclusion of source files.
Bug: 159585065
Test: m
Change-Id: I49e49b0b3a0115a01fc9cf6f9fe74b23e723a785
diff --git a/cc/cc.go b/cc/cc.go
index 0a23967..2038c91 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -3009,6 +3009,9 @@
lib.baseCompiler.Properties.Exclude_srcs = append(lib.baseCompiler.Properties.Exclude_srcs,
lib.baseCompiler.Properties.Target.Vendor.Exclude_srcs...)
+
+ lib.baseCompiler.Properties.Exclude_generated_sources = append(lib.baseCompiler.Properties.Exclude_generated_sources,
+ lib.baseCompiler.Properties.Target.Vendor.Exclude_generated_sources...)
}
}
@@ -3019,6 +3022,9 @@
lib.baseCompiler.Properties.Exclude_srcs = append(lib.baseCompiler.Properties.Exclude_srcs,
lib.baseCompiler.Properties.Target.Recovery.Exclude_srcs...)
+
+ lib.baseCompiler.Properties.Exclude_generated_sources = append(lib.baseCompiler.Properties.Exclude_generated_sources,
+ lib.baseCompiler.Properties.Target.Recovery.Exclude_generated_sources...)
}
}
diff --git a/cc/compiler.go b/cc/compiler.go
index b5f297c..d5ea2c3 100644
--- a/cc/compiler.go
+++ b/cc/compiler.go
@@ -86,6 +86,10 @@
// genrule modules.
Generated_sources []string `android:"arch_variant"`
+ // list of generated sources that should not be used to build the C/C++ module.
+ // This is most useful in the arch/multilib variants to remove non-common files
+ Exclude_generated_sources []string `android:"arch_variant"`
+
// list of generated headers to add to the include path. These are the names
// of genrule modules.
Generated_headers []string `android:"arch_variant"`
@@ -150,6 +154,10 @@
// List of additional cflags that should be used to build the vendor
// variant of the C/C++ module.
Cflags []string
+
+ // list of generated sources that should not be used to
+ // build the vendor variant of the C/C++ module.
+ Exclude_generated_sources []string
}
Recovery struct {
// list of source files that should only be used in the
@@ -163,6 +171,10 @@
// List of additional cflags that should be used to build the recovery
// variant of the C/C++ module.
Cflags []string
+
+ // list of generated sources that should not be used to
+ // build the recovery variant of the C/C++ module.
+ Exclude_generated_sources []string
}
}
@@ -227,6 +239,7 @@
func (compiler *baseCompiler) compilerDeps(ctx DepsContext, deps Deps) Deps {
deps.GeneratedSources = append(deps.GeneratedSources, compiler.Properties.Generated_sources...)
+ deps.GeneratedSources = removeListFromList(deps.GeneratedSources, compiler.Properties.Exclude_generated_sources)
deps.GeneratedHeaders = append(deps.GeneratedHeaders, compiler.Properties.Generated_headers...)
android.ProtoDeps(ctx, &compiler.Proto)