Respect Clang version override env vars.
Bazel fails to respect the environment variables $LLVM_PREBUILTS_VERSION and $LLVM_RELEASE_VERSION, which are commonly used by LLVM developers to build using a custom compiler. Fix it. Bug: 272408039 Change-Id: I3cf18e7814ff52d526017e4fe34b17ab3d8f1080
This commit is contained in:
@@ -95,6 +95,15 @@ func (ev ExportedVariables) ExportVariableConfigMethod(name string, method inter
|
||||
return ev.pctx.VariableConfigMethod(name, method)
|
||||
}
|
||||
|
||||
func (ev ExportedVariables) ExportStringStaticVariableWithEnvOverride(name, envVar, defaultVal string) {
|
||||
ev.ExportVariableConfigMethod(name, func(config Config) string {
|
||||
if override := config.Getenv(envVar); override != "" {
|
||||
return override
|
||||
}
|
||||
return defaultVal
|
||||
})
|
||||
}
|
||||
|
||||
// ExportSourcePathVariable declares a static "source path" variable and exports
|
||||
// it to Bazel's toolchain.
|
||||
func (ev ExportedVariables) ExportSourcePathVariable(name string, value string) {
|
||||
|
@@ -417,15 +417,12 @@ func init() {
|
||||
exportedVars.ExportStringList("CommonGlobalIncludes", commonGlobalIncludes)
|
||||
pctx.PrefixedExistentPathsForSourcesVariable("CommonGlobalIncludes", "-I", commonGlobalIncludes)
|
||||
|
||||
exportedVars.ExportStringStaticVariable("CLANG_DEFAULT_VERSION", ClangDefaultVersion)
|
||||
exportedVars.ExportStringStaticVariable("CLANG_DEFAULT_SHORT_VERSION", ClangDefaultShortVersion)
|
||||
|
||||
pctx.StaticVariableWithEnvOverride("ClangBase", "LLVM_PREBUILTS_BASE", ClangDefaultBase)
|
||||
pctx.StaticVariableWithEnvOverride("ClangVersion", "LLVM_PREBUILTS_VERSION", ClangDefaultVersion)
|
||||
exportedVars.ExportStringStaticVariableWithEnvOverride("ClangVersion", "LLVM_PREBUILTS_VERSION", ClangDefaultVersion)
|
||||
pctx.StaticVariable("ClangPath", "${ClangBase}/${HostPrebuiltTag}/${ClangVersion}")
|
||||
pctx.StaticVariable("ClangBin", "${ClangPath}/bin")
|
||||
|
||||
pctx.StaticVariableWithEnvOverride("ClangShortVersion", "LLVM_RELEASE_VERSION", ClangDefaultShortVersion)
|
||||
exportedVars.ExportStringStaticVariableWithEnvOverride("ClangShortVersion", "LLVM_RELEASE_VERSION", ClangDefaultShortVersion)
|
||||
pctx.StaticVariable("ClangAsanLibDir", "${ClangBase}/linux-x86/${ClangVersion}/lib/clang/${ClangShortVersion}/lib/linux")
|
||||
|
||||
// These are tied to the version of LLVM directly in external/llvm, so they might trail the host prebuilts
|
||||
|
Reference in New Issue
Block a user