diff --git a/debug-64bit-windows.cmd b/debug-64bit-windows.cmd index 1325e1cb..c8cecf8e 100644 --- a/debug-64bit-windows.cmd +++ b/debug-64bit-windows.cmd @@ -1,9 +1,15 @@ @echo off +setlocal +IF [%CARGO_TARGET_DIR%] == [] ( + SET CARGO_TARGET_DIR=target +) cargo +nightly build --target x86_64-pc-windows-msvc || goto :error -python scripts/static-pie-gen.py basm/src/solution.rs x86_64-pc-windows-msvc target/x86_64-pc-windows-msvc/debug/basm.exe scripts/static-pie-stub-amd64.bin C static-pie-template-amd64.c || goto :error +python scripts/static-pie-gen.py basm/src/solution.rs x86_64-pc-windows-msvc "%CARGO_TARGET_DIR%"/x86_64-pc-windows-msvc/debug/basm.exe scripts/static-pie-stub-amd64.bin C static-pie-template-amd64.c || goto :error :; exit 0 +endlocal exit /b 0 :error +endlocal exit /b %errorlevel% \ No newline at end of file diff --git a/release-64bit-windows-fn-impl.cmd b/release-64bit-windows-fn-impl.cmd index 7241eec2..bc477e1c 100644 --- a/release-64bit-windows-fn-impl.cmd +++ b/release-64bit-windows-fn-impl.cmd @@ -1,9 +1,15 @@ @echo off +setlocal +IF [%CARGO_TARGET_DIR%] == [] ( + SET CARGO_TARGET_DIR=target +) cargo +nightly build --target x86_64-pc-windows-msvc --bin basm-submit --features=submit --release || goto :error -python scripts/static-pie-gen.py basm/src/solution.rs x86_64-pc-windows-msvc target/x86_64-pc-windows-msvc/release/basm-submit.exe static-pie-stub-amd64.bin C static-pie-template-amd64-fn-impl.c || goto :error +python scripts/static-pie-gen.py basm/src/solution.rs x86_64-pc-windows-msvc "%CARGO_TARGET_DIR%"/x86_64-pc-windows-msvc/release/basm-submit.exe static-pie-stub-amd64.bin C static-pie-template-amd64-fn-impl.c || goto :error :; exit 0 +endlocal exit /b 0 :error +endlocal exit /b %errorlevel% \ No newline at end of file diff --git a/release-64bit-windows-rs.cmd b/release-64bit-windows-rs.cmd index 622142a6..31489886 100644 --- a/release-64bit-windows-rs.cmd +++ b/release-64bit-windows-rs.cmd @@ -1,9 +1,15 @@ @echo off +setlocal +IF [%CARGO_TARGET_DIR%] == [] ( + SET CARGO_TARGET_DIR=target +) cargo +nightly build --target x86_64-pc-windows-msvc --bin basm-submit --features=submit --release || goto :error -python scripts/static-pie-gen.py basm/src/solution.rs x86_64-pc-windows-msvc target/x86_64-pc-windows-msvc/release/basm-submit.exe static-pie-stub-amd64.bin Rust static-pie-template-amd64.rs || goto :error +python scripts/static-pie-gen.py basm/src/solution.rs x86_64-pc-windows-msvc "%CARGO_TARGET_DIR%"/x86_64-pc-windows-msvc/release/basm-submit.exe static-pie-stub-amd64.bin Rust static-pie-template-amd64.rs || goto :error :; exit 0 +endlocal exit /b 0 :error +endlocal exit /b %errorlevel% \ No newline at end of file diff --git a/release-64bit-windows.cmd b/release-64bit-windows.cmd index 0ff8bb89..d1880129 100644 --- a/release-64bit-windows.cmd +++ b/release-64bit-windows.cmd @@ -1,9 +1,15 @@ @echo off +setlocal +IF [%CARGO_TARGET_DIR%] == [] ( + SET CARGO_TARGET_DIR=target +) cargo +nightly build --target x86_64-pc-windows-msvc --bin basm-submit --features=submit --release || goto :error -python scripts/static-pie-gen.py basm/src/solution.rs x86_64-pc-windows-msvc target/x86_64-pc-windows-msvc/release/basm-submit.exe static-pie-stub-amd64.bin C static-pie-template-amd64.c || goto :error +python scripts/static-pie-gen.py basm/src/solution.rs x86_64-pc-windows-msvc "%CARGO_TARGET_DIR%"/x86_64-pc-windows-msvc/release/basm-submit.exe static-pie-stub-amd64.bin C static-pie-template-amd64.c || goto :error :; exit 0 +endlocal exit /b 0 :error +endlocal exit /b %errorlevel% \ No newline at end of file diff --git a/scripts/static-pie.sh b/scripts/static-pie.sh index 072b811f..de9d78b8 100755 --- a/scripts/static-pie.sh +++ b/scripts/static-pie.sh @@ -74,6 +74,8 @@ if [[ "$lang_name" == "CFnImpl" ]]; then lang_name="C" fi +cargo_target_dir=${CARGO_TARGET_DIR:-"target"} + >&2 echo "Building project for target ${target_name}, language ${lang_name}, build mode ${build_mode}" if [[ "$build_mode" == "Debug" ]]; then @@ -83,10 +85,10 @@ else fi if [[ "$target_name" == "x86_64-pc-windows-msvc" ]] || [[ "$target_name" == "x86_64-pc-windows-gnu" ]]; then - python3 scripts/static-pie-gen.py basm/ "$target_name" target/"$target_name"/"$build_mode_dir"/basm-submit.exe "$stub" "$lang_name" "$template" + python3 scripts/static-pie-gen.py basm/ "$target_name" "$cargo_target_dir"/"$target_name"/"$build_mode_dir"/basm-submit.exe "$stub" "$lang_name" "$template" else - cp target/"$target_name"/"$build_mode_dir"/basm-submit target/"$target_name"/"$build_mode_dir"/basm-submit-stripped - objcopy --strip-all target/"$target_name"/"$build_mode_dir"/basm-submit-stripped - objcopy --remove-section .eh_frame --remove-section .gcc_except_table --remove-section .gnu.hash target/"$target_name"/"$build_mode_dir"/basm-submit-stripped - python3 scripts/static-pie-gen.py basm/ "$target_name" target/"$target_name"/"$build_mode_dir"/basm-submit-stripped "$stub" "$lang_name" "$template" + cp "$cargo_target_dir"/"$target_name"/"$build_mode_dir"/basm-submit "$cargo_target_dir"/"$target_name"/"$build_mode_dir"/basm-submit-stripped + objcopy --strip-all "$cargo_target_dir"/"$target_name"/"$build_mode_dir"/basm-submit-stripped + objcopy --remove-section .eh_frame --remove-section .gcc_except_table --remove-section .gnu.hash "$cargo_target_dir"/"$target_name"/"$build_mode_dir"/basm-submit-stripped + python3 scripts/static-pie-gen.py basm/ "$target_name" "$cargo_target_dir"/"$target_name"/"$build_mode_dir"/basm-submit-stripped "$stub" "$lang_name" "$template" fi diff --git a/scripts/wasm-gen.py b/scripts/wasm-gen.py index 8ac37c79..0041004a 100644 --- a/scripts/wasm-gen.py +++ b/scripts/wasm-gen.py @@ -21,7 +21,10 @@ def deflate_raw(input_bytes): sol_b64 = base64.b64encode(deflate_raw(sol.encode('utf8'))).decode('ascii') # binary -with open("target/wasm32-unknown-unknown/release/basm-submit.wasm", "rb") as f: +target = os.environ.get("CARGO_TARGET_DIR", "target") +if len(target) == 0: + target = "target" +with open(f"{target}/wasm32-unknown-unknown/release/basm-submit.wasm", "rb") as f: code = f.read() code = base64.b64encode(deflate_raw(code)).decode('ascii')