diff options
Diffstat (limited to 'cc/builder.go')
-rw-r--r-- | cc/builder.go | 75 |
1 files changed, 48 insertions, 27 deletions
diff --git a/cc/builder.go b/cc/builder.go index 51c4ce9f..61c05720 100644 --- a/cc/builder.go +++ b/cc/builder.go @@ -206,26 +206,27 @@ func init() { } type builderFlags struct { - globalFlags string - arFlags string - asFlags string - cFlags string - conlyFlags string - cppFlags string - ldFlags string - libFlags string - yaccFlags string - protoFlags string - tidyFlags string - sAbiFlags string - yasmFlags string - aidlFlags string - rsFlags string - toolchain config.Toolchain - clang bool - tidy bool - coverage bool - sAbiDump bool + globalFlags string + arFlags string + asFlags string + cFlags string + toolingCFlags string // Seperate set of Cflags for clang LibTooling tools + conlyFlags string + cppFlags string + ldFlags string + libFlags string + yaccFlags string + protoFlags string + tidyFlags string + sAbiFlags string + yasmFlags string + aidlFlags string + rsFlags string + toolchain config.Toolchain + clang bool + tidy bool + coverage bool + sAbiDump bool systemIncludeFlags string @@ -275,25 +276,40 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and coverageFiles = make(android.Paths, 0, len(srcFiles)) } - cflags := strings.Join([]string{ + commonFlags := strings.Join([]string{ flags.globalFlags, flags.systemIncludeFlags, + }, " ") + + toolingCflags := strings.Join([]string{ + commonFlags, + flags.toolingCFlags, + flags.conlyFlags, + }, " ") + + cflags := strings.Join([]string{ + commonFlags, flags.cFlags, flags.conlyFlags, }, " ") + toolingCppflags := strings.Join([]string{ + commonFlags, + flags.toolingCFlags, + flags.cppFlags, + }, " ") + cppflags := strings.Join([]string{ - flags.globalFlags, - flags.systemIncludeFlags, + commonFlags, flags.cFlags, flags.cppFlags, }, " ") asflags := strings.Join([]string{ - flags.globalFlags, - flags.systemIncludeFlags, + commonFlags, flags.asFlags, }, " ") + var sAbiDumpFiles android.Paths if flags.sAbiDump && flags.clang { sAbiDumpFiles = make(android.Paths, 0, len(srcFiles)) @@ -301,7 +317,9 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and if flags.clang { cflags += " ${config.NoOverrideClangGlobalCflags}" + toolingCflags += " ${config.NoOverrideClangGlobalCflags}" cppflags += " ${config.NoOverrideClangGlobalCflags}" + toolingCppflags += " ${config.NoOverrideClangGlobalCflags}" } else { cflags += " ${config.NoOverrideGlobalCflags}" cppflags += " ${config.NoOverrideGlobalCflags}" @@ -327,6 +345,7 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and } var moduleCflags string + var moduleToolingCflags string var ccCmd string tidy := flags.tidy && flags.clang coverage := flags.coverage @@ -342,9 +361,11 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and case ".c": ccCmd = "gcc" moduleCflags = cflags + moduleToolingCflags = toolingCflags case ".cpp", ".cc", ".mm": ccCmd = "g++" moduleCflags = cppflags + moduleToolingCflags = toolingCppflags default: ctx.ModuleErrorf("File %s has unknown extension", srcFile) continue @@ -402,7 +423,7 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and // support exporting dependencies. Implicit: objFile, Args: map[string]string{ - "cFlags": moduleCflags, + "cFlags": moduleToolingCflags, "tidyFlags": flags.tidyFlags, }, }) @@ -419,7 +440,7 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and Input: srcFile, Implicit: objFile, Args: map[string]string{ - "cFlags": moduleCflags, + "cFlags": moduleToolingCflags, "exportDirs": flags.sAbiFlags, }, }) |