[nostalgia] Port setup-build back to Bash

This commit is contained in:
Gary Talent 2019-02-02 13:08:22 -06:00
parent af0e24d9bf
commit 8da1b77aa5
3 changed files with 64 additions and 68 deletions

View File

@ -63,28 +63,28 @@ shell:
release:
${ENV_RUN} rm -rf build/${HOST_ENV}-release
${ENV_RUN} ./scripts/setup-build.ps1 ${HOST_ENV} release
${ENV_RUN} ./scripts/setup-build ${HOST_ENV} release
debug:
${ENV_RUN} rm -rf build/${HOST_ENV}-debug
${ENV_RUN} ./scripts/setup-build.ps1 ${HOST_ENV} debug
${ENV_RUN} ./scripts/setup-build ${HOST_ENV} debug
asan:
${ENV_RUN} rm -rf build/${HOST_ENV}-asan
${ENV_RUN} ./scripts/setup-build.ps1 ${HOST_ENV} asan
${ENV_RUN} ./scripts/setup-build ${HOST_ENV} asan
windows:
${ENV_RUN} rm -rf build/windows
${ENV_RUN} ./scripts/setup-build.ps1 windows
${ENV_RUN} ./scripts/setup-build windows
windows-debug:
${ENV_RUN} rm -rf build/windows
${ENV_RUN} ./scripts/setup-build.ps1 windows debug
${ENV_RUN} ./scripts/setup-build windows debug
gba:
${ENV_RUN} rm -rf build/gba-release
${ENV_RUN} ./scripts/setup-build.ps1 gba release
${ENV_RUN} ./scripts/setup-build gba release
gba-debug:
${ENV_RUN} rm -rf build/gba-debug
${ENV_RUN} ./scripts/setup-build.ps1 gba debug
${ENV_RUN} ./scripts/setup-build gba debug

57
scripts/setup-build Executable file
View File

@ -0,0 +1,57 @@
#! /usr/bin/env bash
TARGET=$1
BUILD_TYPE=$2
project=$(pwd)/
buildTool=""
if [[ $TARGET == windows ]]; then
toolchain="-DCMAKE_TOOLCHAIN_FILE=cmake/Modules/Mingw.cmake"
buildTool="-GNinja"
elif [[ $TARGET == gba ]]; then
toolchain="-DCMAKE_TOOLCHAIN_FILE=cmake/Modules/GBA.cmake"
nostalgiaBuildType="-DNOSTALGIA_BUILD_TYPE=GBA"
oxUseStdLib="-DOX_USE_STDLIB=OFF"
else
buildTool="-GNinja"
fi
if [[ $BUILD_TYPE == asan ]]; then
BUILD_TYPEArgs="-DCMAKE_BUILD_TYPE=Debug"
sanitizerArgs="-DUSE_ASAN=ON"
elif [[ $BUILD_TYPE == debug ]]; then
BUILD_TYPEArgs="-DCMAKE_BUILD_TYPE=Debug"
sanitizerArgs=""
elif [[ $BUILD_TYPE == release ]]; then
BUILD_TYPEArgs="-DCMAKE_BUILD_TYPE=Release"
sanitizerArgs=""
fi
if [[ $NOSTALGIA_QT_PATH != "" ]]; then
qtPath="-DNOSTALGIA_QT_PATH=${NOSTALGIA_QT_PATH}"
fi
buildDir="${project}/build/${TARGET}-${BUILD_TYPE}"
distDir="${project}/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 \
$nostalgiaBuildType \
$oxUseStdLib \
$BUILD_TYPEArgs \
$sanitizerArgs \
$qtPath \
$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

View File

@ -1,61 +0,0 @@
#! /usr/bin/env pwsh
Param(
[parameter(Mandatory=$true,Position=0)][String] ${target},
[parameter(Mandatory=$true,Position=1)][String] ${buildType}
)
$project=(Get-Location).Path
$buildTool=""
if (${target} -eq "windows") {
$toolchain="-DCMAKE_TOOLCHAIN_FILE=cmake/Modules/Mingw.cmake"
$buildTool="-GNinja"
} elseif (${target} -eq "gba") {
$toolchain="-DCMAKE_TOOLCHAIN_FILE=cmake/Modules/GBA.cmake"
$nostalgiaBuildType="-DNOSTALGIA_BUILD_TYPE=GBA"
$oxUseStdLib="-DOX_USE_STDLIB=OFF"
} else {
$buildTool="-GNinja"
}
if (${buildType} -eq "asan") {
$buildTypeArgs="-DCMAKE_BUILD_TYPE=Debug"
$sanitizerArgs="-DUSE_ASAN=ON"
} elseif (${buildType} -eq "debug") {
$buildTypeArgs="-DCMAKE_BUILD_TYPE=Debug"
$sanitizerArgs=""
} elseif (${buildType} -eq "release") {
$buildTypeArgs="-DCMAKE_BUILD_TYPE=Release"
$sanitizerArgs=""
}
if (${env:NOSTALGIA_QT_PATH} -ne "") {
$qtPath="-DNOSTALGIA_QT_PATH=${env:NOSTALGIA_QT_PATH}"
}
$buildDir="${project}/build/${target}-${buildType}"
$distDir="${project}/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 `
$nostalgiaBuildType `
$oxUseStdLib `
$buildTypeArgs `
$sanitizerArgs `
$qtPath `
$toolchain `
$project
Pop-Location
rm -f build/current dist/current
if (!(Test-Path -Path dist)) {
New-Item -ItemType Directory -Path dist | Out-Null
}
ln -s ${target}-${buildType} build/current
ln -s ${target}-${buildType} dist/current