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
This commit is contained in:
Colin Cross
2019-11-04 09:37:55 -08:00
parent 1f056cd69d
commit 4af21ed26f
26 changed files with 286 additions and 259 deletions

View File

@@ -162,25 +162,41 @@ func generateCLionProject(compiledModule CompiledInterface, ctx android.Singleto
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",