Create kernel sccache dir in wrappers

This commit is contained in:
TheK0tYaRa 2026-03-19 09:05:23 +02:00
parent 5d957231ba
commit a612e5f447

View file

@ -73,11 +73,17 @@ let
dir = "${sccacheDir}"
size = "100G"
'';
sccacheSetup = lib.optionalString enforceSccache ''
mkdir -p ${lib.escapeShellArg sccacheDir}
export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig}
${lib.optionalString (sccacheServerUds != null) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"}
'';
mkSccacheWrapper =
name: compiler:
pkgs.writeShellScriptBin name ''
set -euo pipefail
mkdir -p ${lib.escapeShellArg sccacheDir}
export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig}
${lib.optionalString (sccacheServerUds != null) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"}
if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then
@ -91,6 +97,7 @@ let
hostcxxSccache = mkSccacheWrapper "c++" realHostCXX;
rustcSccache = pkgs.writeShellScriptBin "rustc" ''
set -euo pipefail
mkdir -p ${lib.escapeShellArg sccacheDir}
export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig}
${lib.optionalString (sccacheServerUds != null) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"}
if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then
@ -101,6 +108,7 @@ let
hostrustcSccache = pkgs.writeShellScriptBin "rustc" ''
set -euo pipefail
mkdir -p ${lib.escapeShellArg sccacheDir}
export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig}
${lib.optionalString (sccacheServerUds != null) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"}
if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then
@ -152,21 +160,14 @@ buildLinux (
]
;
preBuild =
(args.preBuild or "")
+ lib.optionalString enforceSccache ''
mkdir -p ${lib.escapeShellArg sccacheDir}
export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig}
${lib.optionalString (sccacheServerUds != null) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"}
'';
preConfigure = (args.preConfigure or "") + sccacheSetup;
preBuild = (args.preBuild or "") + sccacheSetup;
buildPhase =
if enforceSccache then
''
runHook preBuild
mkdir -p ${lib.escapeShellArg sccacheDir}
export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig}
${lib.optionalString (sccacheServerUds != null) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"}
export SCCACHE_ENFORCE_MARKER="$NIX_BUILD_TOP/.sccache-used"
rm -f "$SCCACHE_ENFORCE_MARKER"
make "''${makeFlags[@]}" "''${buildFlags[@]}"