From 24ef2d29df95c437dcf7629fb800a49a155ba020 Mon Sep 17 00:00:00 2001 From: kevaundray Date: Tue, 15 Aug 2023 14:09:14 +0100 Subject: [PATCH] chore: Parameterize the build mode for noir-wasm (#2317) --- crates/wasm/build.sh | 2 +- crates/wasm/buildPhaseCargoCommand.sh | 23 ++++++++++++++++++++--- flake.nix | 2 +- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/crates/wasm/build.sh b/crates/wasm/build.sh index 61b5b17d34d..54add2b8ed3 100755 --- a/crates/wasm/build.sh +++ b/crates/wasm/build.sh @@ -42,7 +42,7 @@ else echo "Will install package to $out" fi -run_or_fail ${self_path}/buildPhaseCargoCommand.sh +run_or_fail ${self_path}/buildPhaseCargoCommand.sh release run_or_fail ${self_path}/installPhase.sh ln -s $out $self_path/result diff --git a/crates/wasm/buildPhaseCargoCommand.sh b/crates/wasm/buildPhaseCargoCommand.sh index 5ba924dbb7b..f7828d7cd35 100755 --- a/crates/wasm/buildPhaseCargoCommand.sh +++ b/crates/wasm/buildPhaseCargoCommand.sh @@ -23,9 +23,26 @@ if [ -d ${self_path}/pkg/ ]; then rm -rf ${self_path}/pkg/ fi -# TODO: Handle the wasm target being built in release mode +# Check that the user passed in debug or release mode +# and set the BUILD_FLAG and BUILD_MODE appropriately. +if [[ -z "$1" ]]; then + echo "Build script requires either "debug" or "release" as an argument." + exit 1 +fi + +BUILD_MODE=$1 +BUILD_FLAG="" # Defaults to debug mode which is an empty string + +if [[ "$1" == "release" ]]; then + BUILD_MODE=release + BUILD_FLAG="--release" +elif [[ "$1" != "debug" ]]; then + echo "Invalid BUILD_MODE. Accepted values are 'debug' or 'release'." + exit 1 +fi + TARGET=wasm32-unknown-unknown -WASM_BINARY=${CARGO_TARGET_DIR}/${TARGET}/release/${pname}.wasm +WASM_BINARY=${CARGO_TARGET_DIR}/${TARGET}/${BUILD_MODE}/${pname}.wasm NODE_DIR=${self_path}/pkg/nodejs/ BROWSER_DIR=${self_path}/pkg/web/ @@ -33,7 +50,7 @@ NODE_WASM=${NODE_DIR}/${pname}_bg.wasm BROWSER_WASM=${BROWSER_DIR}/${pname}_bg.wasm # Build the new wasm package -run_or_fail cargo build --lib --release --package noir_wasm --target wasm32-unknown-unknown +run_or_fail cargo build --lib $BUILD_FLAG --package noir_wasm --target wasm32-unknown-unknown run_or_fail wasm-bindgen $WASM_BINARY --out-dir $NODE_DIR --typescript --target nodejs run_or_fail wasm-bindgen $WASM_BINARY --out-dir $BROWSER_DIR --typescript --target web run_if_available wasm-opt $NODE_WASM -o $NODE_WASM -O diff --git a/flake.nix b/flake.nix index 912b035d359..135f7d1742b 100644 --- a/flake.nix +++ b/flake.nix @@ -308,7 +308,7 @@ ]; buildPhaseCargoCommand = '' - bash crates/wasm/buildPhaseCargoCommand.sh + bash crates/wasm/buildPhaseCargoCommand.sh release ''; installPhase = ''