Introduce Linux counter parts

This commit is contained in:
jaby 2023-10-06 17:02:30 +02:00
parent c85d50a022
commit 1eb6f2e0bd
5 changed files with 74 additions and 55 deletions

View File

@ -4,31 +4,24 @@
"path": "." "path": "."
} }
], ],
"settings": {}, "settings": {
},
"tasks": { "tasks": {
"version": "2.0.0", "version": "2.0.0",
"tasks": [ "tasks": [
{
"label": "cpp_out",
"type": "shell",
"windows": {
"command": "wsl --shell-type login cargo ${input:cargo cmd} --target=x86_64-unknown-linux-gnu --${input:build cfg}"
},
"linux": {
"command": "$HOME/.cargo/bin/cargo ${input:cargo cmd} --${input:build cfg}"
},
"group": "build",
"options": {
"cwd": "${workspaceFolder}/cpp_out"
}
},
//////////////////////////////////////////////////
{ {
"label": "all", "label": "all",
"type": "shell", "type": "shell",
"command": "./build_all.bat ${input:cargo cmd}", "command": "./build_all.bat ${input:cargo cmd}",
"group": { "group": {
"kind": "build" "kind": "build"
},
"options": {
"env": {
"win_tools": "psxcdgen psxcdgen_ex psxcdread psxreadmap wslpath",
"linux_tools": "cpp_out psxcdgen_ex jaby_engine_fconv mkoverlay wslpath",
"clean_tools": "cdtypes tool_helper"
}
} }
}, },
{ {

View File

@ -1,39 +1,20 @@
@echo off @echo off
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
rem build_all [clean] [recommended|windows|linux] rem build_all {build|check|clean}
call .config_build_all/recommended.bat if %1 == clean (
IF NOT "%~2" == "" ( for %%a in (%clean_tools%) do (
set config_path=.config_build_all/%~2.bat call .\run_cargo %%a %1 release windows
IF exist "!config_path!" ( cd %cur_dir%
call !config_path!
) ELSE (
@echo "Configuration !config_path! not found"
exit -1
) )
) )
set projects=%bin_projects% for %%a in (%win_tools%) do (
set linux_projects=%bin_linux_projects% call .\run_cargo %%a %1 release windows
set build_type=build
set cur_dir=%cd%
IF NOT "%~1" == "" (
IF "%~1" == "clean" (
set build_type=clean
set projects=%projects% %clean_projects%
set linux_projects=%linux_projects% %clean_projects_linux%
) ELSE (
set build_type=%~1
)
)
for %%a in (%projects%) do (
call .\run_cargo %%a %build_type% release windows
cd %cur_dir% cd %cur_dir%
) )
for %%a in (%linux_projects%) do ( for %%a in (%linux_tools%) do (
call .\run_cargo %%a %build_type% release linux call .\run_cargo %%a %1 release linux
cd %cur_dir% cd %cur_dir%
) )

12
src/Tools/build_all.sh Normal file
View File

@ -0,0 +1,12 @@
#!/bin/bash
# build_all {build|check|clean}
if [ $1 = clean ]; then
all_project=$win_tools $linux_tools $clean_tools
else
all_project=$win_tools $linux_tools
fi
for prj in ${all_project[@]}; do
source run_cargo.sh $prj $1 release
done

View File

@ -1,30 +1,25 @@
@echo off @echo off
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
rem run_cargo.bat project {build|check|clean|test} {debug|release} [linux|windows] rem run_cargo.bat project {build|check|clean} {debug|release} [linux|windows]
set org_dir=%cd% set org_dir=%cd%
set bin_ext=.exe
set target=x86_64-pc-windows-msvc set target=x86_64-pc-windows-msvc
set wsl= set wsl=
IF %4 == linux ( IF %4 == linux (
set bin_ext= wsl --shell-type login ./run_cargo.sh %1 %2 %3
set target=x86_64-unknown-linux-gnu exit /B %ERRORLEVEL%
set wsl=wsl --shell-type login
) )
IF defined CARGO_RUN_ARGS set run_args=-- %CARGO_RUN_ARGS% 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 cd %1
IF defined run_build ( IF %2 == build (
echo cargo build %1 --%3 echo cargo build %1 --%3
%wsl%cargo build --%3 --target=%target% %wsl%cargo build --%3 --target=%target%
IF %2 == build IF %ERRORLEVEL% == 0 ( IF %ERRORLEVEL% == 0 (
xcopy target\%target%\%3\%1%bin_ext% %org_dir%\..\..\bin /y xcopy target\%target%\%3\%1.exe %org_dir%\..\..\bin /y
) )
exit /B %ERRORLEVEL% exit /B %ERRORLEVEL%

38
src/Tools/run_cargo.sh Normal file
View File

@ -0,0 +1,38 @@
#!/bin/sh
# run_cargo.sh project {build|check|clean|test} {debug|release}
target=x86_64-unknown-linux-gnu
if [ -n "${CARGO_RUN_ARGS}" ]; then
run_args=-- ${CARGO_RUN_ARGS}
fi
cd $1
if [ $2 = build ]; then
echo "cargo build $1 --$3"
cargo build --$3 --target=$target
if [ $? = 0 ]; then
cp target/$target/$3/$1 ../../../bin
echo "1 File(s) copied"
fi
exit $?
elif [ $2 = run ]; then
echo "cargo run $1 --$3"
cargo run --$3 --target=$target
exit $?
elif [ $2 = check ]; then
echo "cargo check $1 --$3"
cargo check --$3 --target=$target $run_args
exit $?
elif [ $2 = clean ]; then
echo "cargo clean $1"
cargo clean
exit $?
else
echo "Unkown cargo command $2 for project $1"
fi