Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a350878 authored by Yi Kong's avatar Yi Kong
Browse files

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
parent 85b1e39f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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")
+7 −4
Original line number Diff line number Diff line
@@ -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",
	}, " "))
}

+2 −0
Original line number Diff line number Diff line
@@ -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",