aboutsummaryrefslogtreecommitdiff
path: root/zkvmLib.nix
diff options
context:
space:
mode:
authorKamen Mladenov <kamen@syndamia.com>2025-02-21 10:34:35 +0200
committerKamen Mladenov <kamen@syndamia.com>2025-02-26 09:26:09 +0200
commitc02d4899e0af97b045ebc8f522daa30fa6de3fcb (patch)
tree1d124d22bc14dd46285528b92366288b8786dde7 /zkvmLib.nix
parent97975bed0221b12a99177c8107c6a59d5f72023b (diff)
downloadzkVMs-benchmarks-c02d4899e0af97b045ebc8f522daa30fa6de3fcb.tar
zkVMs-benchmarks-c02d4899e0af97b045ebc8f522daa30fa6de3fcb.tar.gz
zkVMs-benchmarks-c02d4899e0af97b045ebc8f522daa30fa6de3fcb.zip
feat(zkvmLib): Attribute for specifying a guest or host specific Rust toolchains
Allows the host and guest program toolchains to differ. Generally, you should only need to set one.
Diffstat (limited to 'zkvmLib.nix')
-rw-r--r--zkvmLib.nix9
1 files changed, 9 insertions, 0 deletions
diff --git a/zkvmLib.nix b/zkvmLib.nix
index 8c6f262..7584c5a 100644
--- a/zkvmLib.nix
+++ b/zkvmLib.nix
@@ -147,6 +147,9 @@ in {
buildGuestPhase = ''
export INPUTS_DIR="$PWD/guests/${guest}"
export ZKVM="${args.pname}" GUEST="${guest}"
+ OLD_PATH="$PATH"
+
+ ${if args ? guestToolchain then "export PATH=\"${args.guestToolchain}/bin:$PATH\"" else ""}
pushd zkvms/${args.pname}/guest
runHook preBuildGuest
@@ -157,6 +160,7 @@ in {
${if args ? guestTarget then "ln -s ../../guest/target/${args.guestTarget}/release/guest ../host/src/guest" else ""}
unset RUSTUP_TOOLCHAIN RUSTFLAGS CARGO_ENCODED_RUSTFLAGS
+ export PATH="$OLD_PATH"
runHook postBuildGuest
popd
@@ -165,6 +169,9 @@ in {
buildPhase = ''
export INPUTS_DIR="$PWD/guests/${guest}"
export ZKVM="${args.pname}" GUEST="${guest}"
+ OLD_PATH="$PATH"
+
+ ${if args ? hostToolchain then "export PATH=\"${args.hostToolchain}/bin:$PATH\"" else ""}
pushd zkvms/${args.pname}/host
runHook preBuild
@@ -172,6 +179,8 @@ in {
cargo --version
cargo build --release
+ export PATH="$OLD_PATH"
+
runHook postBuild
popd
'';