Add {c,cpp}_compiler_launcher options

This commit is contained in:
Adam Scott 2025-04-17 12:17:19 -04:00
parent dbddc9ef29
commit f6efd88cda
No known key found for this signature in database
GPG Key ID: F6BA2A0302E21A77

View File

@ -296,6 +296,9 @@ opts.Add("asflags", "Custom flags for the assembler")
opts.Add("arflags", "Custom flags for the archive tool")
opts.Add("rcflags", "Custom flags for Windows resource compiler")
opts.Add("c_compiler_launcher", "C compiler launcher (e.g. `ccache`)")
opts.Add("cpp_compiler_launcher", "C++ compiler launcher (e.g. `ccache`)")
# Update the environment to have all above options defined
# in following code (especially platform and custom_modules).
opts.Update(env)
@ -1122,6 +1125,13 @@ for key in (emitters := env.StaticObject.builder.emitter):
for key in (emitters := env.SharedObject.builder.emitter):
emitters[key] = ListEmitter([methods.redirect_emitter] + env.Flatten(emitters[key]))
# Prepend compiler launchers
if "c_compiler_launcher" in env:
env["CC"] = " ".join([env["c_compiler_launcher"], env["CC"]])
if "cpp_compiler_launcher" in env:
env["CXX"] = " ".join([env["cpp_compiler_launcher"], env["CXX"]])
# Build subdirs, the build order is dependent on link order.
Export("env")