diff --git a/plonky2x/core/src/backend/function/mod.rs b/plonky2x/core/src/backend/function/mod.rs index 5e3f4e977..337a3feab 100644 --- a/plonky2x/core/src/backend/function/mod.rs +++ b/plonky2x/core/src/backend/function/mod.rs @@ -4,7 +4,7 @@ pub mod result; use std::fs::File; use std::io::{BufReader, Write}; -use std::{fs, path}; +use std::{env, fs, path}; use clap::Parser; use log::info; @@ -140,6 +140,9 @@ impl Plonky2xFunction for C { AlgebraicHasher, OuterParameters::Config: Serialize, { + // Setup enviroment variables. + env::set_var("BUILD_DIR", args.build_dir.clone()); + // If the request is of type bytes and the wrapper path is not empty, then we need to // start the gnark wrapper process. let gnark_wrapper_process = if let ProofRequest::Bytes(_) = request { diff --git a/plonky2x/core/src/backend/prover/env.rs b/plonky2x/core/src/backend/prover/env.rs index 894937bb8..c290b1fcb 100644 --- a/plonky2x/core/src/backend/prover/env.rs +++ b/plonky2x/core/src/backend/prover/env.rs @@ -32,7 +32,8 @@ impl EnvProver { } else { let gate_serializer = S::gate_registry::(); let generator_serializer = S::generator_registry::(); - let circuit_path = format!("./build/{}.circuit", circuit_id); + let build_dir = env::var("BUILD_DIR").unwrap_or_else(|_| "./build".to_string()); + let circuit_path = format!("{}/{}.circuit", build_dir, circuit_id); let circuit = CircuitBuild::::load(&circuit_path, &gate_serializer, &generator_serializer) .unwrap(); @@ -55,7 +56,8 @@ impl EnvProver { } else { let gate_serializer = S::gate_registry::(); let generator_serializer = S::generator_registry::(); - let circuit_path = format!("./build/{}.circuit", circuit_id); + let build_dir = env::var("BUILD_DIR").unwrap_or_else(|_| "./build".to_string()); + let circuit_path = format!("{}/{}.circuit", build_dir, circuit_id); let circuit = CircuitBuild::::load(&circuit_path, &gate_serializer, &generator_serializer) .unwrap();