Index: ps/trunk/build/premake/extern_libs5.lua =================================================================== --- ps/trunk/build/premake/extern_libs5.lua +++ ps/trunk/build/premake/extern_libs5.lua @@ -208,7 +208,7 @@ -- are included for compatibility with different versions of Boost android_names = { "boost_filesystem-gcc-mt", "boost_system-gcc-mt" }, unix_names = { os.findlib("boost_filesystem-mt") and "boost_filesystem-mt" or "boost_filesystem", os.findlib("boost_system-mt") and "boost_system-mt" or "boost_system" }, - osx_names = { "boost_filesystem-mt", "boost_system-mt" }, + osx_names = { "boost_filesystem", "boost_system" }, }) end, }, Index: ps/trunk/build/premake/premake5.lua =================================================================== --- ps/trunk/build/premake/premake5.lua +++ ps/trunk/build/premake/premake5.lua @@ -313,10 +313,9 @@ links { "gcov" } end - -- MacOS always provides SSE3 so enable that. - -- TODO: after <10.12 support is dropped, we can assume SSE4.1 is present. + -- MacOS 10.12 only supports processors with SSE 4.1, so enable that. if os.istarget("macosx") then - buildoptions { "-msse3" } + buildoptions { "-msse4.1" } end -- Check if SDK path should be used Index: ps/trunk/build/workspaces/update-workspaces.sh =================================================================== --- ps/trunk/build/workspaces/update-workspaces.sh +++ ps/trunk/build/workspaces/update-workspaces.sh @@ -68,7 +68,7 @@ if [ "`uname -s`" = "Darwin" ]; then # Set minimal SDK version - export MIN_OSX_VERSION=${MIN_OSX_VERSION:="10.9"} + export MIN_OSX_VERSION=${MIN_OSX_VERSION:="10.12"} # Set *_CONFIG variables on OS X, to override the path to e.g. sdl2-config export GLOOX_CONFIG=${GLOOX_CONFIG:="$(pwd)/../../libraries/osx/gloox/bin/gloox-config"} Index: ps/trunk/libraries/osx/build-osx-libs.sh =================================================================== --- ps/trunk/libraries/osx/build-osx-libs.sh +++ ps/trunk/libraries/osx/build-osx-libs.sh @@ -21,30 +21,30 @@ # -------------------------------------------------------------- # Library versions for ease of updating: ZLIB_VERSION="zlib-1.2.11" -CURL_VERSION="curl-7.59.0" -ICONV_VERSION="libiconv-1.15" -XML2_VERSION="libxml2-2.9.8" -SDL2_VERSION="SDL2-2.0.5" +CURL_VERSION="curl-7.71.0" +ICONV_VERSION="libiconv-1.16" +XML2_VERSION="libxml2-2.9.10" +SDL2_VERSION="SDL2-2.0.12" # NOTE: remember to also update LIB_URL below when changing version -BOOST_VERSION="boost_1_64_0" +BOOST_VERSION="boost_1_74_0" # NOTE: remember to also update LIB_URL below when changing version WXWIDGETS_VERSION="wxWidgets-3.0.3.1" # libpng was included as part of X11 but that's removed from Mountain Lion # (also the Snow Leopard version was ancient 1.2) -PNG_VERSION="libpng-1.6.34" +PNG_VERSION="libpng-1.6.36" OGG_VERSION="libogg-1.3.3" -VORBIS_VERSION="libvorbis-1.3.6" +VORBIS_VERSION="libvorbis-1.3.7" # gloox requires GnuTLS, GnuTLS requires Nettle and GMP -GMP_VERSION="gmp-6.1.2" -NETTLE_VERSION="nettle-3.5.1" +GMP_VERSION="gmp-6.2.0" +NETTLE_VERSION="nettle-3.6" # NOTE: remember to also update LIB_URL below when changing version -GNUTLS_VERSION="gnutls-3.6.13" -GLOOX_VERSION="gloox-1.0.22" +GLOOX_VERSION="gloox-1.0.24" +GNUTLS_VERSION="gnutls-3.6.15" # OS X only includes part of ICU, and only the dylib # NOTE: remember to also update LIB_URL below when changing version -ICU_VERSION="icu4c-59_2" -ENET_VERSION="enet-1.3.13" -MINIUPNPC_VERSION="miniupnpc-2.0.20180222" +ICU_VERSION="icu4c-67_1" +ENET_VERSION="enet-1.3.17" +MINIUPNPC_VERSION="miniupnpc-2.1" SODIUM_VERSION="libsodium-1.0.18" # -------------------------------------------------------------- # Bundled with the game: @@ -61,12 +61,8 @@ # * OpenGL # -------------------------------------------------------------- -# Define compiler as "clang", this is all Mavericks supports. -# gcc symlinks may still exist, but they are simply clang with -# slightly different config, which confuses build scripts. -# llvm-gcc and gcc 4.2 are no longer supported by SpiderMonkey. export CC=${CC:="clang"} CXX=${CXX:="clang++"} -export MIN_OSX_VERSION=${MIN_OSX_VERSION:="10.9"} +export MIN_OSX_VERSION=${MIN_OSX_VERSION:="10.12"} # The various libs offer inconsistent configure options, some allow # setting sysroot and OS X-specific options, others don't. Adding to @@ -89,7 +85,7 @@ fi CFLAGS="$CFLAGS $C_FLAGS -fvisibility=hidden" -CXXFLAGS="$CXXFLAGS $C_FLAGS -stdlib=libc++ -std=c++14 -msse3" +CXXFLAGS="$CXXFLAGS $C_FLAGS -stdlib=libc++ -std=c++14 -msse4.1" OBJCFLAGS="$OBJCFLAGS $C_FLAGS" OBJCXXFLAGS="$OBJCXXFLAGS $C_FLAGS" @@ -355,7 +351,7 @@ LIB_VERSION="${BOOST_VERSION}" LIB_ARCHIVE="$LIB_VERSION.tar.bz2" LIB_DIRECTORY="$LIB_VERSION" -LIB_URL="https://dl.bintray.com/boostorg/release/1.64.0/source/" +LIB_URL="https://dl.bintray.com/boostorg/release/1.74.0/source/" mkdir -p boost pushd boost > /dev/null @@ -379,11 +375,11 @@ cxxflags="$CXXFLAGS" \ linkflags="$LDFLAGS" ${JOBS} \ -d2 \ - --layout=tagged \ + --layout=system \ --debug-configuration \ link=static \ threading=multi \ - variant=release,debug install \ + variant=release install \ ) || die "Boost build failed" popd @@ -668,10 +664,9 @@ tar -xf $LIB_ARCHIVE pushd $LIB_DIRECTORY - # GnuTLS 3.6.8 added the TCP Fast Open feature, which requires connectx - # but that's only available on OS X 10.11+ (GnuTLS doesn't support SDK based builds yet) - # So we disable that functionality - (patch -Np0 -i ../../patches/gnutls-disable-tcpfastopen.diff \ + # Patch GNUTLS for a linking issue with isdigit + # Patch by Ross Nicholson: https://gitlab.com/gnutls/gnutls/-/issues/1033#note_379529145 + (patch -Np1 -i ../../patches/03-undo-libtasn1-cisdigit.patch \ && ./configure CFLAGS="$CFLAGS" \ CXXFLAGS="$CXXFLAGS" \ LDFLAGS="$LDFLAGS" \ @@ -690,6 +685,7 @@ --without-p11-kit \ --disable-tests \ --disable-guile \ + --disable-doc \ --disable-nls \ && make ${JOBS} LDFLAGS= install) || die "GnuTLS build failed" popd @@ -750,7 +746,7 @@ LIB_VERSION="${ICU_VERSION}" LIB_ARCHIVE="$LIB_VERSION-src.tgz" LIB_DIRECTORY="icu" -LIB_URL="https://github.com/unicode-org/icu/releases/download/release-59-2/" +LIB_URL="https://github.com/unicode-org/icu/releases/download/release-67-1/" mkdir -p $LIB_DIRECTORY pushd icu > /dev/null Index: ps/trunk/source/tools/dist/build-osx-bundle.sh =================================================================== --- ps/trunk/source/tools/dist/build-osx-bundle.sh +++ ps/trunk/source/tools/dist/build-osx-bundle.sh @@ -8,16 +8,12 @@ # the chosen target and compatible systems. # -# Force build architecture, as sometimes environment is broken. -# For a universal fat binary, the approach would be to build every -# library with both archs and combine them with lipo, then do the -# same thing with the game itself. -# Choices are "x86_64" or "i386" (ppc and ppc64 not supported) +# TODO: is there anything to do for ARM support? export ARCH=${ARCH:="x86_64"} # Set mimimum required OS X version, SDK location and tools # Old SDKs can be found at https://github.com/phracker/MacOSX-SDKs -export MIN_OSX_VERSION=${MIN_OSX_VERSION:="10.9"} +export MIN_OSX_VERSION=${MIN_OSX_VERSION:="10.12"} export SYSROOT=${SYSROOT:="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${MIN_OSX_VERSION}.sdk"} export CC=${CC:="clang"} CXX=${CXX:="clang++"}