--- prelude/rust/tools/rustc_action.py.orig 2025-01-02 15:09:37.355637246 -0700
+++ prelude/rust/tools/rustc_action.py 2025-01-02 15:08:38.522717401 -0700
@@ -276,6 +276,7 @@
]
if k in os.environ
}
+ nix_env(env)
if args.env:
# Unescape previously escaped newlines.
# Example: \\\\n\\n -> \\\n\n -> \\n\n
@@ -373,4 +374,38 @@
return res
+NIX_ENV_VARS = [
+ "NIX_BINTOOLS",
+ "NIX_BINTOOLS_FOR_TARGET",
+ "NIX_CC",
+ "NIX_CC_FOR_TARGET",
+ "NIX_CFLAGS_COMPILE",
+ "NIX_CFLAGS_COMPILE_FOR_TARGET",
+ "NIX_COREFOUNDATION_RPATH",
+ "NIX_DONT_SET_RPATH",
+ "NIX_DONT_SET_RPATH_FOR_BUILD",
+ "NIX_ENFORCE_NO_NATIVE",
+ "NIX_HARDENING_ENABLE",
+ "NIX_IGNORE_LD_THROUGH_GCC",
+ "NIX_LDFLAGS",
+ "NIX_LDFLAGS_FOR_TARGET",
+ "NIX_NO_SELF_RPATH",
+]
+NIX_ENV_VAR_PREFIXES = [
+ "NIX_BINTOOLS_WRAPPER_TARGET_HOST_",
+ "NIX_BINTOOLS_WRAPPER_TARGET_TARGET_",
+ "NIX_CC_WRAPPER_TARGET_HOST_",
+ "NIX_CC_WRAPPER_TARGET_TARGET_",
+]
+
+
+def nix_env(env: Dict[str, str]):
+ env.update({k: os.environ[k] for k in NIX_ENV_VARS if k in os.environ})
+ for prefix in NIX_ENV_VAR_PREFIXES:
+ vars_starting_with = dict(
+ filter(lambda pair: pair[0].startswith(prefix),
+ os.environ.items()))
+ env.update({k: v for k, v in vars_starting_with.items()})
+
+
sys.exit(asyncio.run(main()))