@echo off setlocal EnableDelayedExpansion rem run_cargo.bat project {build|check|clean|test} {debug|release} [linux|windows] set org_dir=%cd% set bin_ext=.exe set target=x86_64-pc-windows-msvc set wsl= IF %4 == linux ( set bin_ext= set target=x86_64-unknown-linux-gnu set wsl=wsl $HOME/.cargo/bin/ ) IF defined CARGO_RUN_ARGS set run_args=-- %CARGO_RUN_ARGS% IF %2 == build set run_build=1 IF %2 == test set run_build=1 cd %1 IF defined run_build ( echo cargo build %1 --%3 %wsl%cargo build --%3 --target=%target% IF %2 == build IF %ERRORLEVEL% == 0 ( xcopy target\%target%\%3\%1%bin_ext% %org_dir%\..\..\bin /y ) exit /B %ERRORLEVEL% ) IF %2 == run ( echo cargo run %1 --%3 %wsl%cargo run --%3 --target=%target% %run_args% exit /B %ERRORLEVEL% ) IF %2 == check ( echo cargo check %1 --%3 %wsl%cargo check --%3 --target=%target% exit /B %ERRORLEVEL% ) IF %2 == clean ( echo cargo clean %1 %wsl%cargo clean rem We do not delete the bin folder anymore - is kinda to much rem @del %org_dir%\..\..\bin\%1%bin_ext% exit /B %ERRORLEVEL% ) IF %2 == update ( echo cargo update %1 %wsl%cargo update exit /B %ERRORLEVEL% ) echo "Unkown cargo command "%2" for project "%1"