0ad/build/workspaces/update-workspaces.sh
Ralph Sennhauser 707abee34d
Don't export HOSTTYPE in update-workspace.sh
Exporting HOSTTYPE prevents cross compilation as HOSTTYPE is used to
override target host arch instead of detecting it from chosen compiler.
This then results in the wrong arch specific source files to be
included. So just don't set it by default and let it to the user to set
it if he so chooses.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-02 12:58:46 +02:00

59 lines
1.8 KiB
Bash
Executable file

#!/bin/sh
die()
{
echo ERROR: "$*"
exit 1
}
OS=${OS:="$(uname -s)"}
cd "$(dirname "$0")" || die
# Now in build/workspaces/ (where we assume this script resides)
# Parse command-line options:
premake_args=""
with_system_premake5=false
for i in "$@"; do
case $i in
--with-system-premake5) with_system_premake5=true ;;
# Assume any other --options are for Premake
--*) premake_args="${premake_args} $i" ;;
esac
done
if [ "$OS" = "Darwin" ]; then
# Set minimal SDK version
: "${MIN_OSX_VERSION:=10.15}"
: "${WX_CONFIG:=$(realpath ../../libraries/macos/wxwidgets/bin/wx-config)}"
export MIN_OSX_VERSION WX_CONFIG
fi
# Now build Premake or use system's.
cd ../premake || die
premake_command="premake5"
if [ "$with_system_premake5" = "false" ]; then
premake_command="../../libraries/source/premake-core/bin/premake5"
fi
# Now run Premake to create the makefiles
if [ "$OS" != "Darwin" ]; then
# shellcheck disable=SC2086
${premake_command} --file="premake5.lua" --outpath="../workspaces/gcc/" ${premake_args} gmake || die "Premake failed"
else
# shellcheck disable=SC2086
${premake_command} --file="premake5.lua" --outpath="../workspaces/gcc/" --macosx-version-min="${MIN_OSX_VERSION}" ${premake_args} gmake || die "Premake failed"
# Also generate xcode workspaces if on OS X
# shellcheck disable=SC2086
${premake_command} --file="premake5.lua" --outpath="../workspaces/xcode4" --macosx-version-min="${MIN_OSX_VERSION}" ${premake_args} xcode4 || die "Premake failed"
fi
# test_root.cpp gets generated by cxxtestgen and passing different arguments to premake could require a regeneration of this file.
# It doesn't depend on anything in the makefiles, so make won't notice that the prebuild command for creating test_root.cpp needs to be triggered.
# We force this by deleting the file.
rm -f gcc/generated/test_root.cpp
rm -f xcode4/generated/test_root.cpp