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

Commit 342fa6b9 authored by Luis Useche's avatar Luis Useche
Browse files

Add global C flags to compile_commands

This solves linter warnings in editor by adding flags to ignore errors
we don't care about. This also means that compile_commands.json is
closer to the flags we actually use for compilation.

Test: Checked generated compile_commands for new flags.

Change-Id: Id583da6eb5151a9baa9a47771f5f937c88bc43f7
parent 683d7316
Loading
Loading
Loading
Loading
+16 −31
Original line number Diff line number Diff line
@@ -375,6 +375,7 @@ type builderFlags struct {
	localCppFlags        string
	localLdFlags         string

	noOverrideFlags string // Flags appended at the end so they are not overridden.
	libFlags        string // Flags to add to the linker directly after specifying libraries to link.
	extraLibFlags   string // Flags to add to the linker last.
	tidyFlags       string // Flags that apply to clang-tidy
@@ -485,7 +486,8 @@ func transformSourceToObj(ctx ModuleContext, subdir string, srcFiles, noTidySrcs
		flags.localCommonFlags + " " +
		flags.localToolingCFlags + " " +
		flags.localConlyFlags + " " +
		flags.systemIncludeFlags
		flags.systemIncludeFlags + " " +
		flags.noOverrideFlags

	cflags := flags.globalCommonFlags + " " +
		flags.globalCFlags + " " +
@@ -493,7 +495,8 @@ func transformSourceToObj(ctx ModuleContext, subdir string, srcFiles, noTidySrcs
		flags.localCommonFlags + " " +
		flags.localCFlags + " " +
		flags.localConlyFlags + " " +
		flags.systemIncludeFlags
		flags.systemIncludeFlags + " " +
		flags.noOverrideFlags

	toolingCppflags := flags.globalCommonFlags + " " +
		flags.globalToolingCFlags + " " +
@@ -501,7 +504,8 @@ func transformSourceToObj(ctx ModuleContext, subdir string, srcFiles, noTidySrcs
		flags.localCommonFlags + " " +
		flags.localToolingCFlags + " " +
		flags.localToolingCppFlags + " " +
		flags.systemIncludeFlags
		flags.systemIncludeFlags + " " +
		flags.noOverrideFlags

	cppflags := flags.globalCommonFlags + " " +
		flags.globalCFlags + " " +
@@ -509,7 +513,8 @@ func transformSourceToObj(ctx ModuleContext, subdir string, srcFiles, noTidySrcs
		flags.localCommonFlags + " " +
		flags.localCFlags + " " +
		flags.localCppFlags + " " +
		flags.systemIncludeFlags
		flags.systemIncludeFlags + " " +
		flags.noOverrideFlags

	asflags := flags.globalCommonFlags + " " +
		flags.globalAsFlags + " " +
@@ -522,26 +527,6 @@ func transformSourceToObj(ctx ModuleContext, subdir string, srcFiles, noTidySrcs
		sAbiDumpFiles = make(android.Paths, 0, len(srcFiles))
	}

	cflags += " ${config.NoOverrideGlobalCflags}"
	toolingCflags += " ${config.NoOverrideGlobalCflags}"
	cppflags += " ${config.NoOverrideGlobalCflags}"
	toolingCppflags += " ${config.NoOverrideGlobalCflags}"

	if flags.toolchain.Is64Bit() {
		cflags += " ${config.NoOverride64GlobalCflags}"
		toolingCflags += " ${config.NoOverride64GlobalCflags}"
		cppflags += " ${config.NoOverride64GlobalCflags}"
		toolingCppflags += " ${config.NoOverride64GlobalCflags}"
	}

	modulePath := ctx.ModuleDir()
	if android.IsThirdPartyPath(modulePath) {
		cflags += " ${config.NoOverrideExternalGlobalCflags}"
		toolingCflags += " ${config.NoOverrideExternalGlobalCflags}"
		cppflags += " ${config.NoOverrideExternalGlobalCflags}"
		toolingCppflags += " ${config.NoOverrideExternalGlobalCflags}"
	}

	// Multiple source files have build rules usually share the same cFlags or tidyFlags.
	// Define only one version in this module and share it in multiple build rules.
	// To simplify the code, the shared variables are all named as $flags<nnn>.
+2 −1
Original line number Diff line number Diff line
@@ -216,6 +216,7 @@ type Flags struct {
	Local LocalOrGlobalFlags
	// Global flags (which build system or toolchain is responsible for).
	Global          LocalOrGlobalFlags
	NoOverrideFlags []string // Flags applied to the end of list of flags so they are not overridden

	aidlFlags     []string // Flags that apply to aidl source files
	rsFlags       []string // Flags that apply to renderscript source files
+1 −0
Original line number Diff line number Diff line
@@ -164,6 +164,7 @@ func getArguments(src android.Path, ctx android.SingletonContext, ccModule *Modu
		args = append(args, expandAllVars(ctx, ccModule.flags.Local.ConlyFlags)...)
	}
	args = append(args, expandAllVars(ctx, ccModule.flags.SystemIncludeFlags)...)
	args = append(args, expandAllVars(ctx, ccModule.flags.NoOverrideFlags)...)
	args = append(args, src.String())
	return args
}
+10 −1
Original line number Diff line number Diff line
@@ -539,7 +539,6 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
		flags.Global.CommonFlags = append(flags.Global.CommonFlags, tc.ToolchainCflags())
	}


	cStd := parseCStd(compiler.Properties.C_std)
	cppStd := parseCppStd(compiler.Properties.Cpp_std)

@@ -671,6 +670,16 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
		flags.Local.CFlags = append(flags.Local.CFlags, "-DDO_NOT_CHECK_MANUAL_BINDER_INTERFACES")
	}

	flags.NoOverrideFlags = append(flags.NoOverrideFlags, "${config.NoOverrideGlobalCflags}")

	if flags.Toolchain.Is64Bit() {
		flags.NoOverrideFlags = append(flags.NoOverrideFlags, "${config.NoOverride64GlobalCflags}")
	}

	if android.IsThirdPartyPath(ctx.ModuleDir()) {
		flags.NoOverrideFlags = append(flags.NoOverrideFlags, "${config.NoOverrideExternalGlobalCflags}")
	}

	return flags
}

+13 −12
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ func flagsToBuilderFlags(in Flags) builderFlags {
		localCppFlags:        strings.Join(in.Local.CppFlags, " "),
		localLdFlags:         strings.Join(in.Local.LdFlags, " "),

		noOverrideFlags: strings.Join(in.NoOverrideFlags, " "),
		aidlFlags:       strings.Join(in.aidlFlags, " "),
		rsFlags:         strings.Join(in.rsFlags, " "),
		libFlags:        strings.Join(in.libFlags, " "),