1
0
forked from 0ad/0ad

Update libraries to fix some build errors on recent macOS.

Fixes #6797
Fixes #6902
Refs #6915
Fixes #6916
Refs #4362
This commit is contained in:
Stan 2024-08-25 23:49:42 +02:00 committed by Stan
parent f7630b155c
commit 9fd05e38a4

View File

@ -24,23 +24,23 @@ ZLIB_VERSION="zlib-1.2.11"
CURL_VERSION="curl-7.71.0" CURL_VERSION="curl-7.71.0"
ICONV_VERSION="libiconv-1.16" ICONV_VERSION="libiconv-1.16"
XML2_VERSION="libxml2-2.9.10" XML2_VERSION="libxml2-2.9.10"
SDL2_VERSION="SDL2-2.0.18" SDL2_VERSION="SDL2-2.24.0"
# NOTE: remember to also update LIB_URL below when changing version # NOTE: remember to also update LIB_URL below when changing version
BOOST_VERSION="boost_1_76_0" BOOST_VERSION="boost_1_81_0"
# NOTE: remember to also update LIB_URL below when changing version # NOTE: remember to also update LIB_URL below when changing version
WXWIDGETS_VERSION="wxWidgets-3.1.4" WXWIDGETS_VERSION="wxWidgets-3.1.4"
# libpng was included as part of X11 but that's removed from Mountain Lion # libpng was included as part of X11 but that's removed from Mountain Lion
# (also the Snow Leopard version was ancient 1.2) # (also the Snow Leopard version was ancient 1.2)
PNG_VERSION="libpng-1.6.36" PNG_VERSION="libpng-1.6.36"
FREETYPE_VERSION="freetype-2.10.4" FREETYPE_VERSION="freetype-2.10.4"
OGG_VERSION="libogg-1.3.3" OGG_VERSION="libogg-1.3.5"
VORBIS_VERSION="libvorbis-1.3.7" VORBIS_VERSION="libvorbis-1.3.7"
# gloox requires GnuTLS, GnuTLS requires Nettle and GMP # gloox requires GnuTLS, GnuTLS requires Nettle and GMP
GMP_VERSION="gmp-6.2.1" GMP_VERSION="gmp-6.2.1"
NETTLE_VERSION="nettle-3.9" NETTLE_VERSION="nettle-3.9"
# NOTE: remember to also update LIB_URL below when changing version # NOTE: remember to also update LIB_URL below when changing version
GLOOX_VERSION="gloox-1.0.24" GLOOX_VERSION="gloox-1.0.24"
GNUTLS_VERSION="gnutls-3.8.0" GNUTLS_VERSION="gnutls-3.8.3"
# OS X only includes part of ICU, and only the dylib # OS X only includes part of ICU, and only the dylib
# NOTE: remember to also update LIB_URL below when changing version # NOTE: remember to also update LIB_URL below when changing version
ICU_VERSION="icu4c-69_1" ICU_VERSION="icu4c-69_1"
@ -409,7 +409,7 @@ echo "Building Boost..."
LIB_VERSION="${BOOST_VERSION}" LIB_VERSION="${BOOST_VERSION}"
LIB_ARCHIVE="$LIB_VERSION.tar.bz2" LIB_ARCHIVE="$LIB_VERSION.tar.bz2"
LIB_DIRECTORY="$LIB_VERSION" LIB_DIRECTORY="$LIB_VERSION"
LIB_URL="https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/" LIB_URL="https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/"
mkdir -p boost mkdir -p boost
cd boost cd boost
@ -620,16 +620,16 @@ OGG_DIR="$(pwd)/libogg"
rm -rf $LIB_DIRECTORY include lib share rm -rf $LIB_DIRECTORY include lib share
tar -xf $LIB_ARCHIVE tar -xf $LIB_ARCHIVE
( # shellcheck disable=SC2086
cd $LIB_DIRECTORY cmake -B libogg \
./configure \ -S $LIB_DIRECTORY \
CFLAGS="$CFLAGS" \ -G "Unix Makefiles" \
LDFLAGS="$LDFLAGS" \ -DCMAKE_INSTALL_PREFIX="$OGG_DIR" \
--prefix="$OGG_DIR" \ -DBUILD_SHARED_LIBS=OFF \
--enable-shared=no -DINSTALL_DOCS=OFF \
make "${JOBS}" -DCMAKE_C_FLAGS="$CFLAGS" \
make install $CMAKE_FLAGS
) || die "libogg build failed" cmake --build libogg "${JOBS}" --target install
cp -f lib/pkgconfig/* "$PC_PATH" cp -f lib/pkgconfig/* "$PC_PATH"
echo "$LIB_VERSION" >.already-built echo "$LIB_VERSION" >.already-built
@ -659,17 +659,17 @@ echo "Building libvorbis..."
rm -rf $LIB_DIRECTORY include lib share rm -rf $LIB_DIRECTORY include lib share
tar -xf $LIB_ARCHIVE tar -xf $LIB_ARCHIVE
( # shellcheck disable=SC2086
cd $LIB_DIRECTORY cmake -B libvorbis \
./configure \ -S $LIB_DIRECTORY \
CFLAGS="$CFLAGS" \ -G "Unix Makefiles" \
LDFLAGS="$LDFLAGS" \ -DCMAKE_INSTALL_PREFIX="$INSTALL_DIR" \
--prefix="$INSTALL_DIR" \ -DCMAKE_PREFIX_PATH="$OGG_DIR" \
--enable-shared=no \ -DBUILD_SHARED_LIBS=OFF \
--with-ogg="$OGG_DIR" -DINSTALL_DOCS=OFF \
make "${JOBS}" -DCMAKE_C_FLAGS="$CFLAGS" \
make install $CMAKE_FLAGS
) || die "libvorbis build failed" cmake --build libvorbis "${JOBS}" --target install
cp -f lib/pkgconfig/* "$PC_PATH" cp -f lib/pkgconfig/* "$PC_PATH"
echo "$LIB_VERSION" >.already-built echo "$LIB_VERSION" >.already-built
@ -1067,21 +1067,17 @@ echo "Building fmt..."
rm -rf $LIB_DIRECTORY include lib rm -rf $LIB_DIRECTORY include lib
tar -xf $LIB_ARCHIVE tar -xf $LIB_ARCHIVE
( # It appears that older versions of Clang require constexpr statements to have a user-set constructor.
cd $LIB_DIRECTORY patch -Np1 -i ../../../macos-patches/fmt_constexpr.diff
# It appears that older versions of Clang require constexpr statements to have a user-set constructor. # shellcheck disable=SC2086
patch -Np1 -i ../../../macos-patches/fmt_constexpr.diff cmake -B libfmt \
mkdir -p build -S $LIB_DIRECTORY \
cd build -DFMT_TEST=False \
# shellcheck disable=SC2086 -DFMT_DOC=False \
cmake .. \ -DCMAKE_C_FLAGS="$CFLAGS" \
-DFMT_TEST=False \ -DCMAKE_INSTALL_PREFIX="$INSTALL_DIR" \
-DFMT_DOC=False \ $CMAKE_FLAGS
-DCMAKE_INSTALL_PREFIX="$INSTALL_DIR" \ cmake --build libfmt "${JOBS}" --target install
$CMAKE_FLAGS
make fmt "${JOBS}"
make install
) || die "fmt build failed"
cp -f lib/pkgconfig/* "$PC_PATH" cp -f lib/pkgconfig/* "$PC_PATH"
echo "$FMT_VERSION" >.already-built echo "$FMT_VERSION" >.already-built
@ -1102,7 +1098,7 @@ echo "Building Molten VK..."
cd "molten-vk" cd "molten-vk"
if [ $force_rebuild = "true" ] || [ ! -e .already-built ] || [ "$(cat .already-built)" != "$MOLTENVK_VERSION" ] || [ ! -e ../../../binaries/system/libMoltenVK.dylib ]; then if [ $force_rebuild = "true" ] || [ ! -e .already-built ] || [ "$(cat .already-built)" != "$MOLTENVK_VERSION" ] || [ ! -e ../../../binaries/system/libMoltenVK.dylib ]; then
INSTALL_DIR="../../../../binaries/system/" INSTALL_DIR="../../../binaries/system/"
rm -f .already-built rm -f .already-built
download_lib $LIB_URL $LIB_ARCHIVE download_lib $LIB_URL $LIB_ARCHIVE