From 0d114a595329395deecbd89a5ac14f1ab950b19a Mon Sep 17 00:00:00 2001 From: Jan Altensen Date: Thu, 10 Sep 2020 15:21:40 +0200 Subject: [PATCH] soong: allow overriding header files Includes: Author: Jan Altensen Date: Sat Aug 7 19:41:59 2021 +0200 soong: move header override to compiler.go * library.go only covers libraries Change-Id: I3374999d6b364dd1bbc2060996964ee7b04493e7 Change-Id: Ia9d2210605c5927b529fbe9485b0e5abd079f487 --- android/config.go | 4 ++++ android/variable.go | 2 ++ cc/compiler.go | 9 +++++++++ 3 files changed, 15 insertions(+) diff --git a/android/config.go b/android/config.go index 00fc823a8..cbc6fcd72 100644 --- a/android/config.go +++ b/android/config.go @@ -1448,6 +1448,10 @@ func (c *deviceConfig) DeviceKernelHeaderDirs() []string { return c.config.productVariables.DeviceKernelHeaders } +func (c *deviceConfig) TargetSpecificHeaderPath() string { + return String(c.config.productVariables.TargetSpecificHeaderPath) +} + // JavaCoverageEnabledForPath returns whether Java code coverage is enabled for // path. Coverage is enabled by default when the product variable // JavaCoveragePaths is empty. If JavaCoveragePaths is not empty, coverage is diff --git a/android/variable.go b/android/variable.go index e0d512d3a..c9c0c3f23 100644 --- a/android/variable.go +++ b/android/variable.go @@ -367,6 +367,8 @@ type ProductVariables struct { DeviceKernelHeaders []string `json:",omitempty"` + TargetSpecificHeaderPath *string `json:",omitempty"` + ExtraVndkVersions []string `json:",omitempty"` NamespacesToExport []string `json:",omitempty"` diff --git a/cc/compiler.go b/cc/compiler.go index 396ec886b..f3e93ec7f 100644 --- a/cc/compiler.go +++ b/cc/compiler.go @@ -362,6 +362,15 @@ func parseCStd(cStdPtr *string) string { func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps PathDeps) Flags { tc := ctx.toolchain() modulePath := ctx.ModuleDir() + additionalIncludeDirs := ctx.DeviceConfig().TargetSpecificHeaderPath() + if len(additionalIncludeDirs) > 0 { + // devices can have multiple paths in TARGET_SPECIFIC_HEADER_PATH + // add -I in front of all of them + if (strings.Contains(additionalIncludeDirs, " ")) { + additionalIncludeDirs = strings.ReplaceAll(additionalIncludeDirs, " ", " -I") + } + flags.Local.CommonFlags = append(flags.Local.CommonFlags, "-I" + additionalIncludeDirs) + } srcs := compiler.Properties.Srcs.GetOrDefault(ctx, nil) exclude_srcs := compiler.Properties.Exclude_srcs.GetOrDefault(ctx, nil)