diff --git a/SConstruct b/SConstruct index 03990864310..bcc2094f054 100644 --- a/SConstruct +++ b/SConstruct @@ -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")