soong: Add equivalent for LOCAL_EXPORT_CFLAGS
Change-Id: Ieb3e5739b50789bdbaf41a7d5adb04b08f7b9ea2
diff --git a/androidmk/androidmk/android.go b/androidmk/androidmk/android.go
index 8a8bb2e..304a37f 100644
--- a/androidmk/androidmk/android.go
+++ b/androidmk/androidmk/android.go
@@ -783,6 +783,13 @@
return fmt.Errorf("Currently LOCAL_PROTOC_FLAGS only support with value '--proto_path=$(LOCAL_PATH)/...'")
}
+func exportCflags(ctx variableAssignmentContext) error {
+ // The Soong replacement for EXPORT_CFLAGS doesn't need the same extra escaped quotes that were present in Make
+ ctx.mkvalue = ctx.mkvalue.Clone()
+ ctx.mkvalue.ReplaceLiteral(`\"`, `"`)
+ return includeVariableNow(bpVariable{"export_cflags", bpparser.ListType}, ctx)
+}
+
func proguardEnabled(ctx variableAssignmentContext) error {
val, err := makeVariableToBlueprint(ctx.file, ctx.mkvalue, bpparser.ListType)
if err != nil {
diff --git a/cc/library.go b/cc/library.go
index e49f50c..2aea33c 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -196,6 +196,9 @@
// using -isystem for this module and any module that links against this module.
Export_system_include_dirs []string `android:"arch_variant,variant_prepend"`
+ // list of plain cc flags to be used for any module that links against this module.
+ Export_cflags []string `android:"arch_variant"`
+
Target struct {
Vendor, Product struct {
// list of exported include directories, like
@@ -306,6 +309,10 @@
f.systemDirs = append(f.systemDirs, android.PathsForModuleSrc(ctx, f.Properties.Export_system_include_dirs)...)
}
+func (f *flagExporter) exportExtraFlags(ctx ModuleContext) {
+ f.flags = append(f.flags, f.Properties.Export_cflags...)
+}
+
// exportIncludesAsSystem registers the include directories and system include directories to be
// exported transitively both as system include directories to modules depending on this module.
func (f *flagExporter) exportIncludesAsSystem(ctx ModuleContext) {
@@ -1630,6 +1637,7 @@
// Export include paths and flags to be propagated up the tree.
library.exportIncludes(ctx)
+ library.exportExtraFlags(ctx)
library.reexportDirs(deps.ReexportedDirs...)
library.reexportSystemDirs(deps.ReexportedSystemDirs...)
library.reexportFlags(deps.ReexportedFlags...)