From 90d46b8e4b102fb0bc7064df53d1dc0351dd8a88 Mon Sep 17 00:00:00 2001 From: Alessandro Astone Date: Thu, 1 Oct 2020 12:59:27 +0200 Subject: [PATCH] soong: Add equivalent for LOCAL_EXPORT_CFLAGS Change-Id: Ieb3e5739b50789bdbaf41a7d5adb04b08f7b9ea2 --- androidmk/androidmk/android.go | 7 +++++++ cc/library.go | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/androidmk/androidmk/android.go b/androidmk/androidmk/android.go index 8a8bb2eaa..bce42b56c 100644 --- a/androidmk/androidmk/android.go +++ b/androidmk/androidmk/android.go @@ -762,6 +762,13 @@ func cflags(ctx variableAssignmentContext) error { return includeVariableNow(bpVariable{"cflags", bpparser.ListType}, ctx) } +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 protoOutputParams(ctx variableAssignmentContext) error { // The Soong replacement for LOCAL_PROTO_JAVA_OUTPUT_PARAMS doesn't need "," ctx.mkvalue = ctx.mkvalue.Clone() diff --git a/cc/library.go b/cc/library.go index e49f50cc0..2aea33cbe 100644 --- a/cc/library.go +++ b/cc/library.go @@ -196,6 +196,9 @@ type FlagExporterProperties struct { // 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 @@ func (f *flagExporter) exportIncludes(ctx ModuleContext) { 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 @@ func (library *libraryDecorator) link(ctx ModuleContext, // 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...)