Split local and global cflags
Native compiler flags are currently applied in approximately:
global cflags
local cflags
local include dirs
global include dirs
global conlyflags
local conlyflags
global cppflags
local cppflags
This means that a flag that is enabled in the global cppflags
cannot be disabled in the local cflags, and an Android.bp author
must know to disable it in the local cppflags. A better order
would be:
global cflags
global conlyflags
global cppflags
local cflags
local conlyflags
local cppflags
local include dirs
global include dirs
We are mixing both the global and local cflags into a single
variable, and similar for conlyflags and cppflags, which
prevents reordering them. This CL prepares to reorder them
by splitting the global and local cflags into separate variables.
Bug: 143713277
Test: m native
Change-Id: Ic55a8c3516c331dc5f2af9d00e59ceca9d3e6c15
diff --git a/cc/cmakelists.go b/cc/cmakelists.go
index 7b4f89b..76b16cc 100644
--- a/cc/cmakelists.go
+++ b/cc/cmakelists.go
@@ -162,25 +162,41 @@
f.WriteString(")\n")
// Add all header search path and compiler parameters (-D, -W, -f, -XXXX)
- f.WriteString("\n# GLOBAL FLAGS:\n")
- globalParameters := parseCompilerParameters(ccModule.flags.GlobalFlags, ctx, f)
- translateToCMake(globalParameters, f, true, true)
+ f.WriteString("\n# GLOBAL ALL FLAGS:\n")
+ globalAllParameters := parseCompilerParameters(ccModule.flags.Global.CommonFlags, ctx, f)
+ translateToCMake(globalAllParameters, f, true, true)
- f.WriteString("\n# CFLAGS:\n")
- cParameters := parseCompilerParameters(ccModule.flags.CFlags, ctx, f)
- translateToCMake(cParameters, f, true, true)
+ f.WriteString("\n# LOCAL ALL FLAGS:\n")
+ localAllParameters := parseCompilerParameters(ccModule.flags.Local.CommonFlags, ctx, f)
+ translateToCMake(localAllParameters, f, true, true)
- f.WriteString("\n# C ONLY FLAGS:\n")
- cOnlyParameters := parseCompilerParameters(ccModule.flags.ConlyFlags, ctx, f)
- translateToCMake(cOnlyParameters, f, true, false)
+ f.WriteString("\n# GLOBAL CFLAGS:\n")
+ globalCParameters := parseCompilerParameters(ccModule.flags.Global.CFlags, ctx, f)
+ translateToCMake(globalCParameters, f, true, true)
- f.WriteString("\n# CPP FLAGS:\n")
- cppParameters := parseCompilerParameters(ccModule.flags.CppFlags, ctx, f)
- translateToCMake(cppParameters, f, false, true)
+ f.WriteString("\n# LOCAL CFLAGS:\n")
+ localCParameters := parseCompilerParameters(ccModule.flags.Local.CFlags, ctx, f)
+ translateToCMake(localCParameters, f, true, true)
- f.WriteString("\n# SYSTEM INCLUDE FLAGS:\n")
- includeParameters := parseCompilerParameters(ccModule.flags.SystemIncludeFlags, ctx, f)
- translateToCMake(includeParameters, f, true, true)
+ f.WriteString("\n# GLOBAL C ONLY FLAGS:\n")
+ globalConlyParameters := parseCompilerParameters(ccModule.flags.Global.ConlyFlags, ctx, f)
+ translateToCMake(globalConlyParameters, f, true, false)
+
+ f.WriteString("\n# LOCAL C ONLY FLAGS:\n")
+ localConlyParameters := parseCompilerParameters(ccModule.flags.Local.ConlyFlags, ctx, f)
+ translateToCMake(localConlyParameters, f, true, false)
+
+ f.WriteString("\n# GLOBAL CPP FLAGS:\n")
+ globalCppParameters := parseCompilerParameters(ccModule.flags.Global.CppFlags, ctx, f)
+ translateToCMake(globalCppParameters, f, false, true)
+
+ f.WriteString("\n# LOCAL CPP FLAGS:\n")
+ localCppParameters := parseCompilerParameters(ccModule.flags.Local.CppFlags, ctx, f)
+ translateToCMake(localCppParameters, f, false, true)
+
+ f.WriteString("\n# GLOBAL SYSTEM INCLUDE FLAGS:\n")
+ globalIncludeParameters := parseCompilerParameters(ccModule.flags.SystemIncludeFlags, ctx, f)
+ translateToCMake(globalIncludeParameters, f, true, true)
// Add project executable.
f.WriteString(fmt.Sprintf("\nadd_executable(%s ${SOURCE_FILES})\n",