mirror of
https://github.com/godotengine/godot.git
synced 2025-02-05 21:41:47 +08:00
Improving detection of ccache on Mac
Before this commit, ccache where only used on Mac when `OSXCROSS_ROOT` was defined. Now, it could be used even when that envirnment variable is not defined.
This commit is contained in:
parent
19e003bc08
commit
7c4c1100e0
@ -657,12 +657,14 @@ def detect_darwin_sdk_path(platform, env):
|
||||
|
||||
|
||||
def is_apple_clang(env):
|
||||
import shlex
|
||||
|
||||
if env["platform"] not in ["macos", "ios"]:
|
||||
return False
|
||||
if not using_clang(env):
|
||||
return False
|
||||
try:
|
||||
version = subprocess.check_output([env.subst(env["CXX"]), "--version"]).strip().decode("utf-8")
|
||||
version = subprocess.check_output(shlex.split(env.subst(env["CXX"])) + ["--version"]).strip().decode("utf-8")
|
||||
except (subprocess.CalledProcessError, OSError):
|
||||
print_warning("Couldn't parse CXX environment variable to infer compiler version.")
|
||||
return False
|
||||
@ -677,6 +679,8 @@ def get_compiler_version(env):
|
||||
- metadata1, metadata2: Extra information
|
||||
- date: Date of the build
|
||||
"""
|
||||
import shlex
|
||||
|
||||
ret = {
|
||||
"major": -1,
|
||||
"minor": -1,
|
||||
@ -727,7 +731,7 @@ def get_compiler_version(env):
|
||||
# Clang used to return hardcoded 4.2.1: # https://reviews.llvm.org/D56803
|
||||
try:
|
||||
version = subprocess.check_output(
|
||||
[env.subst(env["CXX"]), "--version"], shell=(os.name == "nt"), encoding="utf-8"
|
||||
shlex.split(env.subst(env["CXX"])) + ["--version"], shell=(os.name == "nt"), encoding="utf-8"
|
||||
).strip()
|
||||
except (subprocess.CalledProcessError, OSError):
|
||||
print_warning("Couldn't parse CXX environment variable to infer compiler version.")
|
||||
|
@ -108,6 +108,10 @@ def configure(env: "SConsEnvironment"):
|
||||
|
||||
env.Append(CCFLAGS=["-fobjc-arc"])
|
||||
|
||||
ccache_path = os.environ.get("CCACHE", "")
|
||||
if ccache_path != "":
|
||||
ccache_path = ccache_path + " "
|
||||
|
||||
if "osxcross" not in env: # regular native build
|
||||
if env["macports_clang"] != "no":
|
||||
mpprefix = os.environ.get("MACPORTS_PREFIX", "/opt/local")
|
||||
@ -118,8 +122,8 @@ def configure(env: "SConsEnvironment"):
|
||||
env["RANLIB"] = mpprefix + "/libexec/llvm-" + mpclangver + "/bin/llvm-ranlib"
|
||||
env["AS"] = mpprefix + "/libexec/llvm-" + mpclangver + "/bin/llvm-as"
|
||||
else:
|
||||
env["CC"] = "clang"
|
||||
env["CXX"] = "clang++"
|
||||
env["CC"] = ccache_path + "clang"
|
||||
env["CXX"] = ccache_path + "clang++"
|
||||
|
||||
detect_darwin_sdk_path("macos", env)
|
||||
env.Append(CCFLAGS=["-isysroot", "$MACOS_SDK_PATH"])
|
||||
@ -132,15 +136,8 @@ def configure(env: "SConsEnvironment"):
|
||||
else:
|
||||
basecmd = root + "/target/bin/x86_64-apple-" + env["osxcross_sdk"] + "-"
|
||||
|
||||
ccache_path = os.environ.get("CCACHE")
|
||||
if ccache_path is None:
|
||||
env["CC"] = basecmd + "cc"
|
||||
env["CXX"] = basecmd + "c++"
|
||||
else:
|
||||
# there aren't any ccache wrappers available for macOS cross-compile,
|
||||
# to enable caching we need to prepend the path to the ccache binary
|
||||
env["CC"] = ccache_path + " " + basecmd + "cc"
|
||||
env["CXX"] = ccache_path + " " + basecmd + "c++"
|
||||
env["CC"] = ccache_path + basecmd + "cc"
|
||||
env["CXX"] = ccache_path + basecmd + "c++"
|
||||
env["AR"] = basecmd + "ar"
|
||||
env["RANLIB"] = basecmd + "ranlib"
|
||||
env["AS"] = basecmd + "as"
|
||||
|
Loading…
Reference in New Issue
Block a user