From 27b08561e1b4b8f4df5c8c2ef43fac3720b11517 Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Sun, 28 Jan 2018 00:26:50 -0600 Subject: [PATCH] Rewrite setup_build in Powershell --- Makefile | 25 ++++++++-------------- scripts/setup-build.ps1 | 42 +++++++++++++++++++++++++++++++++++++ scripts/setup_build | 46 ----------------------------------------- 3 files changed, 51 insertions(+), 62 deletions(-) create mode 100755 scripts/setup-build.ps1 delete mode 100755 scripts/setup_build diff --git a/Makefile b/Makefile index d140a605..d16a27f3 100644 --- a/Makefile +++ b/Makefile @@ -38,8 +38,8 @@ gba-run: gba-pkg mgba-qt nostalgia.gba gdb: make gdb ./build/current/src/wombat/wombat -gdb-studio: make - gdb "./dist/current/bin/nostalgia-studio -profile dist/current/share/nostalgia-studio.json" +gdb-studio: install + gdb --args ./dist/current/bin/nostalgia-studio -profile dist/current/share/nostalgia-studio.json devenv-image: docker build . -t ${DEVENV_IMAGE} @@ -63,35 +63,28 @@ shell: release: ${ENV_RUN} rm -rf build/${HOST_ENV}-release - ${ENV_RUN} ./scripts/setup_build ${HOST_ENV} release - ${ENV_RUN} rm -f build/current + ${ENV_RUN} ./scripts/setup-build.ps1 ${HOST_ENV} release debug: ${ENV_RUN} rm -rf build/${HOST_ENV}-debug - ${ENV_RUN} ./scripts/setup_build ${HOST_ENV} debug - ${ENV_RUN} rm -f build/current + ${ENV_RUN} ./scripts/setup-build.ps1 ${HOST_ENV} debug asan: ${ENV_RUN} rm -rf build/${HOST_ENV}-asan - ${ENV_RUN} ./scripts/setup_build ${HOST_ENV} asan - ${ENV_RUN} rm -f build/current + ${ENV_RUN} ./scripts/setup-build.ps1 ${HOST_ENV} asan windows: ${ENV_RUN} rm -rf build/windows - ${ENV_RUN} ./scripts/setup_build windows - ${ENV_RUN} rm -f build/current + ${ENV_RUN} ./scripts/setup-build.ps1 windows windows-debug: ${ENV_RUN} rm -rf build/windows - ${ENV_RUN} ./scripts/setup_build windows debug - ${ENV_RUN} rm -f build/current + ${ENV_RUN} ./scripts/setup-build.ps1 windows debug gba: ${ENV_RUN} rm -rf build/gba-release - ${ENV_RUN} ./scripts/setup_build gba release - ${ENV_RUN} rm -f build/current + ${ENV_RUN} ./scripts/setup-build.ps1 gba release gba-debug: ${ENV_RUN} rm -rf build/gba-debug - ${ENV_RUN} ./scripts/setup_build gba debug - ${ENV_RUN} rm -f build/current + ${ENV_RUN} ./scripts/setup-build.ps1 gba debug diff --git a/scripts/setup-build.ps1 b/scripts/setup-build.ps1 new file mode 100755 index 00000000..d796cbae --- /dev/null +++ b/scripts/setup-build.ps1 @@ -0,0 +1,42 @@ +#! /usr/bin/env pwsh + +Param( + [parameter(Mandatory=$true,Position=0)][String] ${target}, + [parameter(Mandatory=$true,Position=1)][String] ${buildType} +) + +$project=(Get-Location) + +if (${target} -eq "windows") { + $toolchain="-DCMAKE_TOOLCHAIN_FILE=cmake/Modules/Mingw.cmake" +} elseif (${target} -eq "gba") { + $toolchain="-DCMAKE_TOOLCHAIN_FILE=cmake/Modules/GBA.cmake -DNOSTALGIA_BUILD_TYPE=GBA -DOX_USE_STDLIB=OFF" +} + +if (${buildType} -eq "asan") { + $buildTypeArgs="-DUSE_ASAN=ON -DCMAKE_BUILD_TYPE=Debug" +} elseif (${buildType} -eq "debug") { + $buildTypeArgs="-DCMAKE_BUILD_TYPE=Debug" +} elseif (${buildType} -eq "release") { + $buildTypeArgs="-DCMAKE_BUILD_TYPE=Release" +} + +$buildDir="build/${target}-${buildType}" +$distDir="../../dist/${target}-${buildType}" + +New-Item -ItemType Directory -Path $buildDir | Out-Null +Push-Location $buildDir +cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ` + -DCMAKE_INSTALL_PREFIX="$distDir" ` + -DCMAKE_INSTALL_RPATH="$project/dist/${target}-${buildType}/lib/nostalgia" ` + -DNOSTALGIA_IDE_BUILD=OFF ` + $buildTool ` + $buildTypeArgs ` + $toolchain ` + $project +Pop-Location + +rm -f build/current dist/current +New-Item -ItemType Directory -Path dist | Out-Null +ln -s ${target}-${buildType} build/current +ln -s ${target}-${buildType} dist/current diff --git a/scripts/setup_build b/scripts/setup_build deleted file mode 100755 index 34192f96..00000000 --- a/scripts/setup_build +++ /dev/null @@ -1,46 +0,0 @@ -#! /usr/bin/env bash - -set -e - -project=$(pwd)/ - -TARGET=$1 -BUILD_TYPE=$2 - -#if [[ $(which ninja) != "ninja not found" ]]; then -# buildTool="-GNinja" -#fi - -if [[ $TARGET == windows ]]; then - toolchain="-DCMAKE_TOOLCHAIN_FILE=cmake/Modules/Mingw.cmake" -elif [[ $TARGET == gba ]]; then - toolchain="-DCMAKE_TOOLCHAIN_FILE=cmake/Modules/GBA.cmake -DNOSTALGIA_BUILD_TYPE=GBA -DOX_USE_STDLIB=OFF" -fi - -if [[ $BUILD_TYPE == asan ]]; then - buildTypeArgs="-DUSE_ASAN=ON -DCMAKE_BUILD_TYPE=Debug" -elif [[ $BUILD_TYPE == debug ]]; then - buildTypeArgs="-DCMAKE_BUILD_TYPE=Debug" -elif [[ $BUILD_TYPE == release ]]; then - buildTypeArgs="-DCMAKE_BUILD_TYPE=Release" -fi - -buildDir="build/${TARGET}-${BUILD_TYPE}" -distDir="../../dist/${TARGET}-${BUILD_TYPE}" - -mkdir -p $buildDir -pushd $buildDir -cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ - -DCMAKE_INSTALL_PREFIX="$distDir" \ - -DCMAKE_INSTALL_RPATH="$project/dist/${TARGET}-${BUILD_TYPE}/lib/nostalgia" \ - -DNOSTALGIA_IDE_BUILD=OFF \ - $buildTool \ - $buildTypeArgs \ - $toolchain \ - $project -popd - -rm -f build/current dist/current -mkdir -p dist -ln -s ${TARGET}-${BUILD_TYPE} build/current -ln -s ${TARGET}-${BUILD_TYPE} dist/current