OpenRCT2/scripts/build
Michał Janiszewski 0871525850
Use precompiled headers for libopenrct2 with MSVC (#15997)
* Use precompiled headers for libopenrct2 with MSVC

* Exclude PCH from duktape

duktape needs all the warnings turned off and forcing PCH also enables
warnings. As there is nothing duktape would consume from our header,
remove forcing inclusion of that header into duktape.

* Provide msbuild parameter for using PCH only in CI
2023-05-07 21:53:50 +02:00

42 lines
1.6 KiB
Bash
Executable file

#!/usr/bin/env bash
set -e
# Ensure we are in root directory
if [[ $(uname) == "Darwin" ]]; then
basedir="$(perl -MCwd=abs_path -le 'print abs_path readlink(shift);' `dirname $0`/..)"
else
basedir="$(readlink -f `dirname $0`/..)"
fi
cd $basedir
if [[ "$OSTYPE" == "cygwin" || "$OSTYPE" == "msys" ]]; then
# Patch version.h
if [[ -n "$OPENRCT2_BUILD" ]]; then
echo -e "\033[0;36mPatching version.h...\033[0m"
fileversion=$OPENRCT2_VERSION.$OPENRCT2_BUILD
productversion="$fileversion-${OPENRCT2_SHA1_SHORT}"
fileversion=${fileversion//./,}
# FILEVERSION in the resource file can only take up to 4 digits in the version string, so we remove the surplus of version numbers
fileversion=$(echo $fileversion | cut -f1-4 -d",")
echo "#define OPENRCT2_FILE_VERSION $fileversion" > "resources/version.h"
echo "#define OPENRCT2_PRODUCT_VERSION \"$productversion\"" >> "resources/version.h"
cat "resources/version.h"
fi
# Build everything
echo -e "\033[0;36mBuilding OpenRCT2 for Windows $CONFIGURATION|$PLATFORM...\033[0m"
vstool msbuild openrct2.proj -t:build -p:Breakpad=true -p:UsePCH=true
# Create openrct2.exe and openrct2.com with correct subsystem
cp bin/openrct2.exe bin/openrct2.com
vstool editbin //subsystem:console bin/openrct2.com
vstool editbin //subsystem:windows bin/openrct2.exe
else
echo -e "\033[0;36mBuilding OpenRCT2...\033[0m"
mkdir -p bin && cd bin
export DESTDIR=install
cmake .. -G Ninja -DCMAKE_INSTALL_PREFIX=/usr "$@"
ninja -k0 all install
fi