aboutsummaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
authorKamen Mladenov <kamen@syndamia.com>2025-01-14 14:18:45 +0200
committerKamen Mladenov <kamen@syndamia.com>2025-01-14 16:39:30 +0200
commit5e9c547275b23ae6117375f9472d6d109f90625b (patch)
tree441efb960c4ed99932f8a05e3680027d170c9b28 /flake.nix
parent4e8e7fdece91540ca9b521012373660e3dea73dd (diff)
downloadzkVMs-benchmarks-5e9c547275b23ae6117375f9472d6d109f90625b.tar
zkVMs-benchmarks-5e9c547275b23ae6117375f9472d6d109f90625b.tar.gz
zkVMs-benchmarks-5e9c547275b23ae6117375f9472d6d109f90625b.zip
feat(flake): Introduce custom buildGuestPhase
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix17
1 files changed, 16 insertions, 1 deletions
diff --git a/flake.nix b/flake.nix
index 5b9e63e..949a61e 100644
--- a/flake.nix
+++ b/flake.nix
@@ -33,11 +33,27 @@
};
+ # Overrides build and install phases for use with zkVMs
+ # Requirements:
+ # - zkVM is inside zkvms/pname/
+ # - guest crate is located at zkvms/pname/guest and is named "guest"
withCustomPhases = currentPackage: with currentPackage; {
+ buildGuestPhase = ''
+ pushd guest
+ runHook preBuildGuest
+
+ cargo build --release --target ${currentPackage.guestTarget}
+ ln -s ../../guest/target/${currentPackage.guestTarget}/release/guest ../host/src/guest
+
+ runHook postBuildGuest
+ popd
+ '';
+
buildPhase = ''
export INPUTS="$PWD/Vertices-010.in"
pushd zkvms/${currentPackage.pname}
+ runPhase buildGuestPhase
runHook preBuild
cargo build --bin ${hostBin} --release
@@ -52,7 +68,6 @@
mkdir -p "$out"/bin
for bin in $(find . -type f -regex "./zkvms/.*release/[^/]*" -executable -print)
do
- echo "$bin"
mv "$bin" "$out"/bin/
done