Add external projects only CFlags option
Every time the toolchain adds a new warning, we had to suppress the warning in every external projects that violates it, or disable it globally -- which we end up doing most of the time since the first option is way too time consuming. Add a separate cflags option for external projects and move existing -Wno-* flags there so that we can enforce better code quality for internal projects. TODO: Move more -Wno-* flags to ClangExtraExternalCflags Test: m checkbuild Change-Id: If3dee491616a1e7ba6223c2f522d100e10c5ee76
This commit is contained in:
@@ -392,6 +392,12 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
|
||||
fmt.Sprintf("${config.%sGlobalCflags}", hod))
|
||||
}
|
||||
|
||||
if flags.Clang {
|
||||
if strings.HasPrefix(android.PathForModuleSrc(ctx).String(), "external/") {
|
||||
flags.GlobalFlags = append([]string{"${config.ClangExternalCflags}"}, flags.GlobalFlags...)
|
||||
}
|
||||
}
|
||||
|
||||
if ctx.Device() {
|
||||
if Bool(compiler.Properties.Rtti) {
|
||||
flags.CppFlags = append(flags.CppFlags, "-frtti")
|
||||
|
@@ -173,14 +173,17 @@ func init() {
|
||||
// this new warning are fixed.
|
||||
"-Wno-null-pointer-arithmetic",
|
||||
|
||||
// Disable c++98-specific warning since Android is not concerned with C++98
|
||||
// compatibility.
|
||||
"-Wno-c++98-compat-extra-semi",
|
||||
}, " "))
|
||||
|
||||
// Extra cflags for projects under external/ directory
|
||||
pctx.StaticVariable("ClangExtraExternalCflags", strings.Join([]string{
|
||||
// http://b/72330874 Disable -Wenum-compare until the instances detected by this new
|
||||
// warning are fixed.
|
||||
"-Wno-enum-compare",
|
||||
"-Wno-enum-compare-switch",
|
||||
|
||||
// Disable c++98-specific warning since Android is not concerned with C++98
|
||||
// compatibility.
|
||||
"-Wno-c++98-compat-extra-semi",
|
||||
}, " "))
|
||||
}
|
||||
|
||||
|
@@ -170,6 +170,8 @@ func init() {
|
||||
pctx.StaticVariable("CommonClangGlobalCppflags",
|
||||
strings.Join(append(ClangFilterUnknownCflags(commonGlobalCppflags), "${ClangExtraCppflags}"), " "))
|
||||
|
||||
pctx.StaticVariable("ClangExternalCflags", "${ClangExtraExternalCflags}")
|
||||
|
||||
// Everything in these lists is a crime against abstraction and dependency tracking.
|
||||
// Do not add anything to this list.
|
||||
pctx.PrefixedExistentPathsForSourcesVariable("CommonGlobalIncludes", "-I",
|
||||
|
Reference in New Issue
Block a user