visualboyadvance-m/tools/macOS/builder

207 lines
7.4 KiB
Plaintext
Raw Permalink Normal View History

#!/usr/bin/env bash
set -e
LANG=C LC_COLLATE=C LC_CTYPE=C LC_MESSAGES=C LC_MONETARY=C LC_NUMERIC=C LC_TIME=C LC_ALL=C
export LANG LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LC_ALL
## bash 3 does not work for this code
#if [ -z "$IN_DASH" ]; then
# if command -v dash >/dev/null; then
# export IN_DASH=1
# exec dash "$0" "$@"
# else
# echo >&2 "please install dash from homebrew or macports to run this script"
# exit 1
# fi
#fi
target_bits=64
target_cpu=x86_64
case "$1" in
-64)
shift
;;
-32)
target_bits=32
target_cpu=i386
shift
;;
-arm64)
target_bits=arm64
target_cpu=arm64
shift
;;
esac
# Need to use Xcode 9 for 32 bit builds on Mojave and newer.
# Place it in /Applications/Xcode9.app .
if [ "$target_bits" -eq 32 ] && [ -d /Applications/Xcode9.app ]; then
PREV_XCODE=$(xcode-select -p)
printf "\nSetting Xcode9 as the default Xcode for 32 bit build...\n\n"
sudo xcode-select -s /Applications/Xcode9.app/Contents/Developer
fi
builder: update core dists and macOS build cmake: Add cmake option `DISABLE_MACOS_PACKAGE_MANAGERS` to disable automatically using macOS Homebrew, MacPorts or Fink. Use `-Ofast` instead of `-O2` for default compiler optimization flags, which enables `-ffast-math` among a few other tweaks. There is a lot of controversy about this, but in our testing on MSVC with `/fp:fast` the performance increase for this specific app is dramatic. Update version regexps on the SFML headers in `FindSFML.cmake` to allow for a variable number of spaces between the macro and its definition. Update the version of the Sparkle update checker framework for macOS from 1.23.0 to 2.3.0-beta.2, and add a command to the cmake commands for copying the framework to the `.app` to delete it first if already copied. Builder dist changes: Updates: dist old v new v ============================================================== xz 5.2.4 5.2.6 openssl 1.1.1f 1.1.1g curl 7.65.3 7.85.0 ccache 3.4.3 4.6.3 cmake 3.19.4 3.24.1 autoconf 2.69 2.71 autoconf-archive 2017.09.28 2022.09.03 libtool 2.4.6 2.4.7 help2man 1.47.5 1.49.2 libiconv 1.16 1.17 gsed 4.4 4.8 bison 3.0.5 3.8.2 texinfo 6.5 6.8 flex e7d45afc ea6493d9 libicu 65_1 71_1 nasm 2.14.02 2.15.05 pcre 8.41 8.45 libffi 3.2.1 3.4.2 libxml2 2.9.12 2.10.2 libxslt 1.1.33-rc2 1.1.37 XML-SAX 0.99 1.02 expat 2.2.4 2.4.8 libjpeg-turbo 2.0.4 2.1.4 libtiff 4.1.0 4.4.0 freetype 2.10.0 2.12.1 libgd 2.2.5 2.3.3 liberation 2.0.1 2.1.5 urw 91edd6ec 20200910 graphviz 4bf0ec9b 5.0.1 python2 2.7.15 2.7.18 python3 3.9.1 3.10.6 swig 3.0.12 4.0.2 doxygen 1.8.14 1.9.5 bakefile 33c270a5 7a218d89 XML-Parser 2.44 2.46 ninja 1.9.0 1.11.1 meson 0.51.2 0.63.2 glib 2.62.2 51251940 libgpg-error 1.41 1.45 libgcrypt 1.8.5 1.10.1 libsecret 0.19.1 0.20.5 sdl2 2.0.10 2.24.0 flac 1.3.3 1.3.4 libogg 1.3.4 1.3.5 libvorbis 1.3.6 1.3.7 harfbuzz 1.7.5 5.1.0 sfml 03375688 2.5.1 shared-mime-info 1.9 2.2 wxwidgets 9cc0c9a0 31720e1e graphite2 ce0e793f 425da3d0 xvidcore 1.3.5 1.3.7 fribidi 1.0.1 1.0.12 libgsm 1.0.18 1.0.22 libmodplug 5a39f591 d1b97ed0 libopencore-amrnb 0.1.5 0.1.6 snappy 1.1.7 af720f9a speex 1.2.0 1.2.1 vidstab 1.1.0 90c76aca libvo-amrwbenc 0.1.3 3b3fcd0d libass 0.14.0 0.16.0 libbluray 1.1.2 1.3.2 libvpx 1.8.1 1.12.0 libx264 20190913-2245 f7074e12 libxavs distrotech-xavs-git 8300fbf4 libzmq 4.2.2 4.3.4 ffmpeg 4.3.1 5.1.1 Removed dists: dist ver ========================= zlib 1.2.11 pkgconfig 0.29.2 docbook5.0 5.0 libwavpack 5.1.0 Added dists: dist ver ======================== zlib-ng ce01b1e4 zstd 1.5.2 hiredis 1.0.2 pkgconf 1.9.3 pcre2 10.40 docbook5.0.1 5.0.1 docbook5.1 5.1 Changes: Update all non-working dist URLs. Replace zlib 1.2.11 with a recent zlib-ng built with `--zlib-compat`. Add zstd and hiredis, new deps of ccache. Replace pkgconfig with pkgconf. Use both pcre1 and pcre2. Remove the libxml2-python dist alias and rebuild libxml2 `--with-python` and `--with-python3` after python 2 and 3 have built. Remove libwavpack as ffmpeg 5 no longer uses it as a dependency. Builder core: Rename some of the directories and files to be a bit nicer. Add `-Ofast -march=core2 -mtune=generic -pipe` to the global `{C,CXX,OBJC,LD}FLAGS`. These are the optimization settings used by default in the project as well, while `-pipe` significantly reduces build time by making the compiler use pipes internally. Add `-DFLOAT_APPROX` to the global `{CPP,C,CXX,OBJC}FLAGS` because we are now using `-Ofast` and consequently, `-ffast-math`. Set the `LIBRARY_PATH` variable in the global environment. Make some adjustments for the new dist versions and make some other improvements. macOS builder fixes (tested on High Sierra 10.13 and Catalina 10.15): Add support for predefined BUILD_ROOT and append BUILD_ROOT_SUFFIX. Allow pre-defined CHECKOUT directory for building the project sources. Sanitize `PATH` before build to remove `/usr/local` etc., use /usr/local/bin/brew explicitly for deps instead. If llvm and clang is installed from nix or brew, prepend the path of the highest version found to `PATH`. Remove `-lm` from build environment as macOS has never had an `m` math library and this causes problems in some config checks. Add LLVM `libunwind` from the LLVM archive. Add a patch for `glib`'s `meson.build` to statically link `gettext`/`libintl`, adds `-liconv -framework CoreFoundation`. Add an extra location to check for `stdint.h` in XCode. Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2022-11-11 14:19:47 +00:00
export BUILD_ROOT="${BUILD_ROOT:-$HOME/vbam-build-mac-${target_bits}bit}$BUILD_ROOT_SUFFIX"
ver_file=$(mktemp)
sw_vers -productVersion | sed 's/\./ /g' > "$ver_file"
read -r macos_major macos_minor macos_patch < "$ver_file"
rm -f "$ver_file"
# Find the highest version clang and llvm in Nix or Homebrew.
best_llvm=$(
(
for nix_clang in $(find /nix/store -maxdepth 1 -type d -name '*-clang-[0-9]*[0-9]'); do
llvm_ver=$(echo "$nix_clang" | sed -E 's/.*-([0-9][0-9.]*[0-9])$/\1/')
nix_llvm=$(find /nix/store -maxdepth 1 -type d -name '*-llvm-'"$llvm_ver")
if [ -x "$nix_clang/bin/clang++" ]; then
echo "$nix_clang:$nix_llvm $($nix_clang/bin/clang++ --version | head -1 | awk '{ print $NF }')"
fi
done
for brew_llvm in $(find /usr/local/opt -maxdepth 1 -type l -name 'llvm*'); do
if [ -x "$brew_llvm/bin/clang++" ]; then
echo "$brew_llvm $($brew_llvm/bin/clang++ --version | head -1 | awk '{ print $NF }')"
fi
done
) | sort -k2,2 -V -r | head -1 | awk '{ print $1 }'
)
BUILD_ENV=$(cat <<EOF
export MACOSX_DEPLOYMENT_TARGET=10.10
support older 32 bit macs running 10.7, fix build Make mac builder use -m32 in CFLAGS etc. to produce a 32 bit binary targetting 10.7 (Lion.) This provides the greatest backward compatibility for older macs, and also allows for asm filters. Fix an issue with m4 on 10.13 using a patch from macports. Support `-pX` patch level args in DIST_PATCHES in builder. Fix an issue with bison on 10.13 by bumping the version to 3.0.5. Build libxslt `--without-crypto` so that it doesn't try to link the brew libgcrypt. Invoke cmake for dists with -DCMAKE_C_COMPILER_LAUNCHER=ccache and -DCMAKE_CXX_COMPILER_LAUNCHER=ccache to use ccache, and set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER to the actual compilers not prefixed by ccache. When checking for ccache in vbam cmake code, check that CMAKE_CXX_COMPILER_LAUNCHER and CMAKE_C_COMPILER_LAUNCHER were not already defined (generally on the command line.) Remove align attributes from sections in 2xSaImmx.asm, macho format on mac does not support this and the filter works fine without them. In the Quartz2D renderer, pass the NSRect view.bounds through NSRectToCGRect when calling CGContextDrawImage(), this is necessary for the 32 bit API. Bump openssl to 1.0.2o. Bump libxml2 to 2.9.8. Update URL for urw fonts, and improve the dist downloading/unpacking code to handle URLs that do not contain the filename (for .tar.gz and .zip as identified by `file`.) Change post-build for harfbuzz from `rebuild_dist freetype;` to `rebuild_dist freetype --with-harfbuzz=yes;` as it was supposed to have been. Build cmake itself with --parallel and --enable-ccache. Silence errors from killed jobs due to tmp directory being gone. Write a couple of string functions, rtrim() and gsub(). Make path_exists() handle globs with spaces in them, by escaping the space. Use --host and --build args to autoconf configure to "cross-compile" for 32 bits, this is necessary for some dists, and does not work for others, remove it for dists where it does not work. Add COMMAND_MODE=unix2003 to the build environment, this is necessary to fix some build errors, why I have no clue, found it on stackoverflow. Pass -Wl,-no_compact_unwind in LDFLAGS to openssl, this is necessary for 32 bits. Force sfml to compile as 32 bit, it normally does not allow this. Remove shared-mime-info from this build, it's not necessary for anything and there are issues XML::Parser linked to our expat and brew perl that need to be resolved.
2018-06-30 10:38:22 +00:00
export COMMAND_MODE=unix2003
builder: update core dists and macOS build cmake: Add cmake option `DISABLE_MACOS_PACKAGE_MANAGERS` to disable automatically using macOS Homebrew, MacPorts or Fink. Use `-Ofast` instead of `-O2` for default compiler optimization flags, which enables `-ffast-math` among a few other tweaks. There is a lot of controversy about this, but in our testing on MSVC with `/fp:fast` the performance increase for this specific app is dramatic. Update version regexps on the SFML headers in `FindSFML.cmake` to allow for a variable number of spaces between the macro and its definition. Update the version of the Sparkle update checker framework for macOS from 1.23.0 to 2.3.0-beta.2, and add a command to the cmake commands for copying the framework to the `.app` to delete it first if already copied. Builder dist changes: Updates: dist old v new v ============================================================== xz 5.2.4 5.2.6 openssl 1.1.1f 1.1.1g curl 7.65.3 7.85.0 ccache 3.4.3 4.6.3 cmake 3.19.4 3.24.1 autoconf 2.69 2.71 autoconf-archive 2017.09.28 2022.09.03 libtool 2.4.6 2.4.7 help2man 1.47.5 1.49.2 libiconv 1.16 1.17 gsed 4.4 4.8 bison 3.0.5 3.8.2 texinfo 6.5 6.8 flex e7d45afc ea6493d9 libicu 65_1 71_1 nasm 2.14.02 2.15.05 pcre 8.41 8.45 libffi 3.2.1 3.4.2 libxml2 2.9.12 2.10.2 libxslt 1.1.33-rc2 1.1.37 XML-SAX 0.99 1.02 expat 2.2.4 2.4.8 libjpeg-turbo 2.0.4 2.1.4 libtiff 4.1.0 4.4.0 freetype 2.10.0 2.12.1 libgd 2.2.5 2.3.3 liberation 2.0.1 2.1.5 urw 91edd6ec 20200910 graphviz 4bf0ec9b 5.0.1 python2 2.7.15 2.7.18 python3 3.9.1 3.10.6 swig 3.0.12 4.0.2 doxygen 1.8.14 1.9.5 bakefile 33c270a5 7a218d89 XML-Parser 2.44 2.46 ninja 1.9.0 1.11.1 meson 0.51.2 0.63.2 glib 2.62.2 51251940 libgpg-error 1.41 1.45 libgcrypt 1.8.5 1.10.1 libsecret 0.19.1 0.20.5 sdl2 2.0.10 2.24.0 flac 1.3.3 1.3.4 libogg 1.3.4 1.3.5 libvorbis 1.3.6 1.3.7 harfbuzz 1.7.5 5.1.0 sfml 03375688 2.5.1 shared-mime-info 1.9 2.2 wxwidgets 9cc0c9a0 31720e1e graphite2 ce0e793f 425da3d0 xvidcore 1.3.5 1.3.7 fribidi 1.0.1 1.0.12 libgsm 1.0.18 1.0.22 libmodplug 5a39f591 d1b97ed0 libopencore-amrnb 0.1.5 0.1.6 snappy 1.1.7 af720f9a speex 1.2.0 1.2.1 vidstab 1.1.0 90c76aca libvo-amrwbenc 0.1.3 3b3fcd0d libass 0.14.0 0.16.0 libbluray 1.1.2 1.3.2 libvpx 1.8.1 1.12.0 libx264 20190913-2245 f7074e12 libxavs distrotech-xavs-git 8300fbf4 libzmq 4.2.2 4.3.4 ffmpeg 4.3.1 5.1.1 Removed dists: dist ver ========================= zlib 1.2.11 pkgconfig 0.29.2 docbook5.0 5.0 libwavpack 5.1.0 Added dists: dist ver ======================== zlib-ng ce01b1e4 zstd 1.5.2 hiredis 1.0.2 pkgconf 1.9.3 pcre2 10.40 docbook5.0.1 5.0.1 docbook5.1 5.1 Changes: Update all non-working dist URLs. Replace zlib 1.2.11 with a recent zlib-ng built with `--zlib-compat`. Add zstd and hiredis, new deps of ccache. Replace pkgconfig with pkgconf. Use both pcre1 and pcre2. Remove the libxml2-python dist alias and rebuild libxml2 `--with-python` and `--with-python3` after python 2 and 3 have built. Remove libwavpack as ffmpeg 5 no longer uses it as a dependency. Builder core: Rename some of the directories and files to be a bit nicer. Add `-Ofast -march=core2 -mtune=generic -pipe` to the global `{C,CXX,OBJC,LD}FLAGS`. These are the optimization settings used by default in the project as well, while `-pipe` significantly reduces build time by making the compiler use pipes internally. Add `-DFLOAT_APPROX` to the global `{CPP,C,CXX,OBJC}FLAGS` because we are now using `-Ofast` and consequently, `-ffast-math`. Set the `LIBRARY_PATH` variable in the global environment. Make some adjustments for the new dist versions and make some other improvements. macOS builder fixes (tested on High Sierra 10.13 and Catalina 10.15): Add support for predefined BUILD_ROOT and append BUILD_ROOT_SUFFIX. Allow pre-defined CHECKOUT directory for building the project sources. Sanitize `PATH` before build to remove `/usr/local` etc., use /usr/local/bin/brew explicitly for deps instead. If llvm and clang is installed from nix or brew, prepend the path of the highest version found to `PATH`. Remove `-lm` from build environment as macOS has never had an `m` math library and this causes problems in some config checks. Add LLVM `libunwind` from the LLVM archive. Add a patch for `glib`'s `meson.build` to statically link `gettext`/`libintl`, adds `-liconv -framework CoreFoundation`. Add an extra location to check for `stdint.h` in XCode. Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2022-11-11 14:19:47 +00:00
export PATH=/usr/bin:/bin:/usr/sbin:/sbin
[ -n "$best_llvm" ] && export PATH="$best_llvm/bin:\$PATH"
export CC=clang
export CXX=clang++
export CPPFLAGS="-DICONV_CONST="
build: macOS builder updates Bump openssl, curl, glib, sdl2, sfml, wxWidgets and ffmpeg. Add support for DIST_INSTALL_TARGETS in order to use `make install_sw` instead of `make install` for openssl because installing the man pages and symlinks to them is very painfully slow with my install code. It's even more painfully slow with whatever whoever did to my macOS virtual machine. Add `brew unlink openssl@3` in the brew setup code because someone broke my compiler and it's not giving precedence to the include directories passed on the command line, breaking the build. Remove `-stdlib=libc++` from compiler flags. This was only necessary when using a 10.7 macOS target, which has both libstdc++ and libc++, libc++ being the newer and current distribution of the C++ standard library for clang and macOS. We are now using a 10.10 macOS target which does not have the old libstdc++, and this compiler option no longer exists, causing a build failure in glib due to -Werror and an unused command line option warning. Remove my patch to link gettext statically for glib, this has been fixed in the newer versions. Install meson using pip in the python3 POST_BUILD instead of using a dist. Add the variables MAKE and MESON to point to the respective invoking commands. Check for /usr/bin/perl before /usr/local/bin/perl, the brew perl no longer works but the macOS perl does. Fix overwriting meson with a symlink when meson has already been installed. Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2023-10-18 23:40:22 +00:00
export CFLAGS="-m${target_bits} -framework Carbon -framework Foundation -framework CoreServices -Wno-unused-command-line-argument -DICONV_CONST= -Wl,-no_compact_unwind"
export CXXFLAGS="-m${target_bits} -framework Carbon -framework Foundation -framework CoreServices -Wno-unused-command-line-argument -DICONV_CONST= -Wl,-no_compact_unwind"
export OBJCXXFLAGS="-m${target_bits} -framework Carbon -framework Foundation -framework CoreServices -Wno-unused-command-line-argument -DICONV_CONST= -Wl,-no_compact_unwind"
export LDFLAGS="-m${target_bits} -framework Carbon -framework Foundation -framework CoreServices -Wno-unused-command-line-argument -Wl,-no_compact_unwind"
export UUID_CFLAGS="-I\$BUILD_ROOT/root/stow/libuuid/include"
export UUID_LIBS="-L\$BUILD_ROOT/root/stow/libuuid/lib -luuid"
EOF
)
export BUILD_ENV
builder: update core dists and macOS build cmake: Add cmake option `DISABLE_MACOS_PACKAGE_MANAGERS` to disable automatically using macOS Homebrew, MacPorts or Fink. Use `-Ofast` instead of `-O2` for default compiler optimization flags, which enables `-ffast-math` among a few other tweaks. There is a lot of controversy about this, but in our testing on MSVC with `/fp:fast` the performance increase for this specific app is dramatic. Update version regexps on the SFML headers in `FindSFML.cmake` to allow for a variable number of spaces between the macro and its definition. Update the version of the Sparkle update checker framework for macOS from 1.23.0 to 2.3.0-beta.2, and add a command to the cmake commands for copying the framework to the `.app` to delete it first if already copied. Builder dist changes: Updates: dist old v new v ============================================================== xz 5.2.4 5.2.6 openssl 1.1.1f 1.1.1g curl 7.65.3 7.85.0 ccache 3.4.3 4.6.3 cmake 3.19.4 3.24.1 autoconf 2.69 2.71 autoconf-archive 2017.09.28 2022.09.03 libtool 2.4.6 2.4.7 help2man 1.47.5 1.49.2 libiconv 1.16 1.17 gsed 4.4 4.8 bison 3.0.5 3.8.2 texinfo 6.5 6.8 flex e7d45afc ea6493d9 libicu 65_1 71_1 nasm 2.14.02 2.15.05 pcre 8.41 8.45 libffi 3.2.1 3.4.2 libxml2 2.9.12 2.10.2 libxslt 1.1.33-rc2 1.1.37 XML-SAX 0.99 1.02 expat 2.2.4 2.4.8 libjpeg-turbo 2.0.4 2.1.4 libtiff 4.1.0 4.4.0 freetype 2.10.0 2.12.1 libgd 2.2.5 2.3.3 liberation 2.0.1 2.1.5 urw 91edd6ec 20200910 graphviz 4bf0ec9b 5.0.1 python2 2.7.15 2.7.18 python3 3.9.1 3.10.6 swig 3.0.12 4.0.2 doxygen 1.8.14 1.9.5 bakefile 33c270a5 7a218d89 XML-Parser 2.44 2.46 ninja 1.9.0 1.11.1 meson 0.51.2 0.63.2 glib 2.62.2 51251940 libgpg-error 1.41 1.45 libgcrypt 1.8.5 1.10.1 libsecret 0.19.1 0.20.5 sdl2 2.0.10 2.24.0 flac 1.3.3 1.3.4 libogg 1.3.4 1.3.5 libvorbis 1.3.6 1.3.7 harfbuzz 1.7.5 5.1.0 sfml 03375688 2.5.1 shared-mime-info 1.9 2.2 wxwidgets 9cc0c9a0 31720e1e graphite2 ce0e793f 425da3d0 xvidcore 1.3.5 1.3.7 fribidi 1.0.1 1.0.12 libgsm 1.0.18 1.0.22 libmodplug 5a39f591 d1b97ed0 libopencore-amrnb 0.1.5 0.1.6 snappy 1.1.7 af720f9a speex 1.2.0 1.2.1 vidstab 1.1.0 90c76aca libvo-amrwbenc 0.1.3 3b3fcd0d libass 0.14.0 0.16.0 libbluray 1.1.2 1.3.2 libvpx 1.8.1 1.12.0 libx264 20190913-2245 f7074e12 libxavs distrotech-xavs-git 8300fbf4 libzmq 4.2.2 4.3.4 ffmpeg 4.3.1 5.1.1 Removed dists: dist ver ========================= zlib 1.2.11 pkgconfig 0.29.2 docbook5.0 5.0 libwavpack 5.1.0 Added dists: dist ver ======================== zlib-ng ce01b1e4 zstd 1.5.2 hiredis 1.0.2 pkgconf 1.9.3 pcre2 10.40 docbook5.0.1 5.0.1 docbook5.1 5.1 Changes: Update all non-working dist URLs. Replace zlib 1.2.11 with a recent zlib-ng built with `--zlib-compat`. Add zstd and hiredis, new deps of ccache. Replace pkgconfig with pkgconf. Use both pcre1 and pcre2. Remove the libxml2-python dist alias and rebuild libxml2 `--with-python` and `--with-python3` after python 2 and 3 have built. Remove libwavpack as ffmpeg 5 no longer uses it as a dependency. Builder core: Rename some of the directories and files to be a bit nicer. Add `-Ofast -march=core2 -mtune=generic -pipe` to the global `{C,CXX,OBJC,LD}FLAGS`. These are the optimization settings used by default in the project as well, while `-pipe` significantly reduces build time by making the compiler use pipes internally. Add `-DFLOAT_APPROX` to the global `{CPP,C,CXX,OBJC}FLAGS` because we are now using `-Ofast` and consequently, `-ffast-math`. Set the `LIBRARY_PATH` variable in the global environment. Make some adjustments for the new dist versions and make some other improvements. macOS builder fixes (tested on High Sierra 10.13 and Catalina 10.15): Add support for predefined BUILD_ROOT and append BUILD_ROOT_SUFFIX. Allow pre-defined CHECKOUT directory for building the project sources. Sanitize `PATH` before build to remove `/usr/local` etc., use /usr/local/bin/brew explicitly for deps instead. If llvm and clang is installed from nix or brew, prepend the path of the highest version found to `PATH`. Remove `-lm` from build environment as macOS has never had an `m` math library and this causes problems in some config checks. Add LLVM `libunwind` from the LLVM archive. Add a patch for `glib`'s `meson.build` to statically link `gettext`/`libintl`, adds `-liconv -framework CoreFoundation`. Add an extra location to check for `stdint.h` in XCode. Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2022-11-11 14:19:47 +00:00
export TAR=tar
if [ "$target_cpu" = i386 ]; then
export CONFIGURE_REQUIRED_ARGS='--host=i386-apple-darwin --build=x86_64-apple-darwin'
fi
support older 32 bit macs running 10.7, fix build Make mac builder use -m32 in CFLAGS etc. to produce a 32 bit binary targetting 10.7 (Lion.) This provides the greatest backward compatibility for older macs, and also allows for asm filters. Fix an issue with m4 on 10.13 using a patch from macports. Support `-pX` patch level args in DIST_PATCHES in builder. Fix an issue with bison on 10.13 by bumping the version to 3.0.5. Build libxslt `--without-crypto` so that it doesn't try to link the brew libgcrypt. Invoke cmake for dists with -DCMAKE_C_COMPILER_LAUNCHER=ccache and -DCMAKE_CXX_COMPILER_LAUNCHER=ccache to use ccache, and set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER to the actual compilers not prefixed by ccache. When checking for ccache in vbam cmake code, check that CMAKE_CXX_COMPILER_LAUNCHER and CMAKE_C_COMPILER_LAUNCHER were not already defined (generally on the command line.) Remove align attributes from sections in 2xSaImmx.asm, macho format on mac does not support this and the filter works fine without them. In the Quartz2D renderer, pass the NSRect view.bounds through NSRectToCGRect when calling CGContextDrawImage(), this is necessary for the 32 bit API. Bump openssl to 1.0.2o. Bump libxml2 to 2.9.8. Update URL for urw fonts, and improve the dist downloading/unpacking code to handle URLs that do not contain the filename (for .tar.gz and .zip as identified by `file`.) Change post-build for harfbuzz from `rebuild_dist freetype;` to `rebuild_dist freetype --with-harfbuzz=yes;` as it was supposed to have been. Build cmake itself with --parallel and --enable-ccache. Silence errors from killed jobs due to tmp directory being gone. Write a couple of string functions, rtrim() and gsub(). Make path_exists() handle globs with spaces in them, by escaping the space. Use --host and --build args to autoconf configure to "cross-compile" for 32 bits, this is necessary for some dists, and does not work for others, remove it for dists where it does not work. Add COMMAND_MODE=unix2003 to the build environment, this is necessary to fix some build errors, why I have no clue, found it on stackoverflow. Pass -Wl,-no_compact_unwind in LDFLAGS to openssl, this is necessary for 32 bits. Force sfml to compile as 32 bit, it normally does not allow this. Remove shared-mime-info from this build, it's not necessary for anything and there are issues XML::Parser linked to our expat and brew perl that need to be resolved.
2018-06-30 10:38:22 +00:00
. "$(dirname "$0")/../builder/core.sh"
builder: update core dists and macOS build cmake: Add cmake option `DISABLE_MACOS_PACKAGE_MANAGERS` to disable automatically using macOS Homebrew, MacPorts or Fink. Use `-Ofast` instead of `-O2` for default compiler optimization flags, which enables `-ffast-math` among a few other tweaks. There is a lot of controversy about this, but in our testing on MSVC with `/fp:fast` the performance increase for this specific app is dramatic. Update version regexps on the SFML headers in `FindSFML.cmake` to allow for a variable number of spaces between the macro and its definition. Update the version of the Sparkle update checker framework for macOS from 1.23.0 to 2.3.0-beta.2, and add a command to the cmake commands for copying the framework to the `.app` to delete it first if already copied. Builder dist changes: Updates: dist old v new v ============================================================== xz 5.2.4 5.2.6 openssl 1.1.1f 1.1.1g curl 7.65.3 7.85.0 ccache 3.4.3 4.6.3 cmake 3.19.4 3.24.1 autoconf 2.69 2.71 autoconf-archive 2017.09.28 2022.09.03 libtool 2.4.6 2.4.7 help2man 1.47.5 1.49.2 libiconv 1.16 1.17 gsed 4.4 4.8 bison 3.0.5 3.8.2 texinfo 6.5 6.8 flex e7d45afc ea6493d9 libicu 65_1 71_1 nasm 2.14.02 2.15.05 pcre 8.41 8.45 libffi 3.2.1 3.4.2 libxml2 2.9.12 2.10.2 libxslt 1.1.33-rc2 1.1.37 XML-SAX 0.99 1.02 expat 2.2.4 2.4.8 libjpeg-turbo 2.0.4 2.1.4 libtiff 4.1.0 4.4.0 freetype 2.10.0 2.12.1 libgd 2.2.5 2.3.3 liberation 2.0.1 2.1.5 urw 91edd6ec 20200910 graphviz 4bf0ec9b 5.0.1 python2 2.7.15 2.7.18 python3 3.9.1 3.10.6 swig 3.0.12 4.0.2 doxygen 1.8.14 1.9.5 bakefile 33c270a5 7a218d89 XML-Parser 2.44 2.46 ninja 1.9.0 1.11.1 meson 0.51.2 0.63.2 glib 2.62.2 51251940 libgpg-error 1.41 1.45 libgcrypt 1.8.5 1.10.1 libsecret 0.19.1 0.20.5 sdl2 2.0.10 2.24.0 flac 1.3.3 1.3.4 libogg 1.3.4 1.3.5 libvorbis 1.3.6 1.3.7 harfbuzz 1.7.5 5.1.0 sfml 03375688 2.5.1 shared-mime-info 1.9 2.2 wxwidgets 9cc0c9a0 31720e1e graphite2 ce0e793f 425da3d0 xvidcore 1.3.5 1.3.7 fribidi 1.0.1 1.0.12 libgsm 1.0.18 1.0.22 libmodplug 5a39f591 d1b97ed0 libopencore-amrnb 0.1.5 0.1.6 snappy 1.1.7 af720f9a speex 1.2.0 1.2.1 vidstab 1.1.0 90c76aca libvo-amrwbenc 0.1.3 3b3fcd0d libass 0.14.0 0.16.0 libbluray 1.1.2 1.3.2 libvpx 1.8.1 1.12.0 libx264 20190913-2245 f7074e12 libxavs distrotech-xavs-git 8300fbf4 libzmq 4.2.2 4.3.4 ffmpeg 4.3.1 5.1.1 Removed dists: dist ver ========================= zlib 1.2.11 pkgconfig 0.29.2 docbook5.0 5.0 libwavpack 5.1.0 Added dists: dist ver ======================== zlib-ng ce01b1e4 zstd 1.5.2 hiredis 1.0.2 pkgconf 1.9.3 pcre2 10.40 docbook5.0.1 5.0.1 docbook5.1 5.1 Changes: Update all non-working dist URLs. Replace zlib 1.2.11 with a recent zlib-ng built with `--zlib-compat`. Add zstd and hiredis, new deps of ccache. Replace pkgconfig with pkgconf. Use both pcre1 and pcre2. Remove the libxml2-python dist alias and rebuild libxml2 `--with-python` and `--with-python3` after python 2 and 3 have built. Remove libwavpack as ffmpeg 5 no longer uses it as a dependency. Builder core: Rename some of the directories and files to be a bit nicer. Add `-Ofast -march=core2 -mtune=generic -pipe` to the global `{C,CXX,OBJC,LD}FLAGS`. These are the optimization settings used by default in the project as well, while `-pipe` significantly reduces build time by making the compiler use pipes internally. Add `-DFLOAT_APPROX` to the global `{CPP,C,CXX,OBJC}FLAGS` because we are now using `-Ofast` and consequently, `-ffast-math`. Set the `LIBRARY_PATH` variable in the global environment. Make some adjustments for the new dist versions and make some other improvements. macOS builder fixes (tested on High Sierra 10.13 and Catalina 10.15): Add support for predefined BUILD_ROOT and append BUILD_ROOT_SUFFIX. Allow pre-defined CHECKOUT directory for building the project sources. Sanitize `PATH` before build to remove `/usr/local` etc., use /usr/local/bin/brew explicitly for deps instead. If llvm and clang is installed from nix or brew, prepend the path of the highest version found to `PATH`. Remove `-lm` from build environment as macOS has never had an `m` math library and this causes problems in some config checks. Add LLVM `libunwind` from the LLVM archive. Add a patch for `glib`'s `meson.build` to statically link `gettext`/`libintl`, adds `-liconv -framework CoreFoundation`. Add an extra location to check for `stdint.h` in XCode. Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2022-11-11 14:19:47 +00:00
# Remove -lm, macOS does not use it and it can cause build failures.
BUILD_ENV=$(printf '%s' "$BUILD_ENV" | sed 's/ -lm / /g')
export BUILD_ENV
for dist in flex libsecret c2man graphviz zip; do
table_line_remove DISTS "$dist"
done
builder: update core dists and macOS build cmake: Add cmake option `DISABLE_MACOS_PACKAGE_MANAGERS` to disable automatically using macOS Homebrew, MacPorts or Fink. Use `-Ofast` instead of `-O2` for default compiler optimization flags, which enables `-ffast-math` among a few other tweaks. There is a lot of controversy about this, but in our testing on MSVC with `/fp:fast` the performance increase for this specific app is dramatic. Update version regexps on the SFML headers in `FindSFML.cmake` to allow for a variable number of spaces between the macro and its definition. Update the version of the Sparkle update checker framework for macOS from 1.23.0 to 2.3.0-beta.2, and add a command to the cmake commands for copying the framework to the `.app` to delete it first if already copied. Builder dist changes: Updates: dist old v new v ============================================================== xz 5.2.4 5.2.6 openssl 1.1.1f 1.1.1g curl 7.65.3 7.85.0 ccache 3.4.3 4.6.3 cmake 3.19.4 3.24.1 autoconf 2.69 2.71 autoconf-archive 2017.09.28 2022.09.03 libtool 2.4.6 2.4.7 help2man 1.47.5 1.49.2 libiconv 1.16 1.17 gsed 4.4 4.8 bison 3.0.5 3.8.2 texinfo 6.5 6.8 flex e7d45afc ea6493d9 libicu 65_1 71_1 nasm 2.14.02 2.15.05 pcre 8.41 8.45 libffi 3.2.1 3.4.2 libxml2 2.9.12 2.10.2 libxslt 1.1.33-rc2 1.1.37 XML-SAX 0.99 1.02 expat 2.2.4 2.4.8 libjpeg-turbo 2.0.4 2.1.4 libtiff 4.1.0 4.4.0 freetype 2.10.0 2.12.1 libgd 2.2.5 2.3.3 liberation 2.0.1 2.1.5 urw 91edd6ec 20200910 graphviz 4bf0ec9b 5.0.1 python2 2.7.15 2.7.18 python3 3.9.1 3.10.6 swig 3.0.12 4.0.2 doxygen 1.8.14 1.9.5 bakefile 33c270a5 7a218d89 XML-Parser 2.44 2.46 ninja 1.9.0 1.11.1 meson 0.51.2 0.63.2 glib 2.62.2 51251940 libgpg-error 1.41 1.45 libgcrypt 1.8.5 1.10.1 libsecret 0.19.1 0.20.5 sdl2 2.0.10 2.24.0 flac 1.3.3 1.3.4 libogg 1.3.4 1.3.5 libvorbis 1.3.6 1.3.7 harfbuzz 1.7.5 5.1.0 sfml 03375688 2.5.1 shared-mime-info 1.9 2.2 wxwidgets 9cc0c9a0 31720e1e graphite2 ce0e793f 425da3d0 xvidcore 1.3.5 1.3.7 fribidi 1.0.1 1.0.12 libgsm 1.0.18 1.0.22 libmodplug 5a39f591 d1b97ed0 libopencore-amrnb 0.1.5 0.1.6 snappy 1.1.7 af720f9a speex 1.2.0 1.2.1 vidstab 1.1.0 90c76aca libvo-amrwbenc 0.1.3 3b3fcd0d libass 0.14.0 0.16.0 libbluray 1.1.2 1.3.2 libvpx 1.8.1 1.12.0 libx264 20190913-2245 f7074e12 libxavs distrotech-xavs-git 8300fbf4 libzmq 4.2.2 4.3.4 ffmpeg 4.3.1 5.1.1 Removed dists: dist ver ========================= zlib 1.2.11 pkgconfig 0.29.2 docbook5.0 5.0 libwavpack 5.1.0 Added dists: dist ver ======================== zlib-ng ce01b1e4 zstd 1.5.2 hiredis 1.0.2 pkgconf 1.9.3 pcre2 10.40 docbook5.0.1 5.0.1 docbook5.1 5.1 Changes: Update all non-working dist URLs. Replace zlib 1.2.11 with a recent zlib-ng built with `--zlib-compat`. Add zstd and hiredis, new deps of ccache. Replace pkgconfig with pkgconf. Use both pcre1 and pcre2. Remove the libxml2-python dist alias and rebuild libxml2 `--with-python` and `--with-python3` after python 2 and 3 have built. Remove libwavpack as ffmpeg 5 no longer uses it as a dependency. Builder core: Rename some of the directories and files to be a bit nicer. Add `-Ofast -march=core2 -mtune=generic -pipe` to the global `{C,CXX,OBJC,LD}FLAGS`. These are the optimization settings used by default in the project as well, while `-pipe` significantly reduces build time by making the compiler use pipes internally. Add `-DFLOAT_APPROX` to the global `{CPP,C,CXX,OBJC}FLAGS` because we are now using `-Ofast` and consequently, `-ffast-math`. Set the `LIBRARY_PATH` variable in the global environment. Make some adjustments for the new dist versions and make some other improvements. macOS builder fixes (tested on High Sierra 10.13 and Catalina 10.15): Add support for predefined BUILD_ROOT and append BUILD_ROOT_SUFFIX. Allow pre-defined CHECKOUT directory for building the project sources. Sanitize `PATH` before build to remove `/usr/local` etc., use /usr/local/bin/brew explicitly for deps instead. If llvm and clang is installed from nix or brew, prepend the path of the highest version found to `PATH`. Remove `-lm` from build environment as macOS has never had an `m` math library and this causes problems in some config checks. Add LLVM `libunwind` from the LLVM archive. Add a patch for `glib`'s `meson.build` to statically link `gettext`/`libintl`, adds `-liconv -framework CoreFoundation`. Add an extra location to check for `stdint.h` in XCode. Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2022-11-11 14:19:47 +00:00
# LLVM libunwind.
table_insert_after DISTS cmake '
libunwind https://github.com/llvm-mirror/libunwind/archive/3e6ec2ae9afaa3683269b690612f84d907943ea2.tar.gz lib/libunwind.a
'
table_line_replace DIST_ARGS libunwind '-DLIBUNWIND_ENABLE_STATIC=ON -DLIBUNWIND_ENABLE_SHARED=OFF'
support older 32 bit macs running 10.7, fix build Make mac builder use -m32 in CFLAGS etc. to produce a 32 bit binary targetting 10.7 (Lion.) This provides the greatest backward compatibility for older macs, and also allows for asm filters. Fix an issue with m4 on 10.13 using a patch from macports. Support `-pX` patch level args in DIST_PATCHES in builder. Fix an issue with bison on 10.13 by bumping the version to 3.0.5. Build libxslt `--without-crypto` so that it doesn't try to link the brew libgcrypt. Invoke cmake for dists with -DCMAKE_C_COMPILER_LAUNCHER=ccache and -DCMAKE_CXX_COMPILER_LAUNCHER=ccache to use ccache, and set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER to the actual compilers not prefixed by ccache. When checking for ccache in vbam cmake code, check that CMAKE_CXX_COMPILER_LAUNCHER and CMAKE_C_COMPILER_LAUNCHER were not already defined (generally on the command line.) Remove align attributes from sections in 2xSaImmx.asm, macho format on mac does not support this and the filter works fine without them. In the Quartz2D renderer, pass the NSRect view.bounds through NSRectToCGRect when calling CGContextDrawImage(), this is necessary for the 32 bit API. Bump openssl to 1.0.2o. Bump libxml2 to 2.9.8. Update URL for urw fonts, and improve the dist downloading/unpacking code to handle URLs that do not contain the filename (for .tar.gz and .zip as identified by `file`.) Change post-build for harfbuzz from `rebuild_dist freetype;` to `rebuild_dist freetype --with-harfbuzz=yes;` as it was supposed to have been. Build cmake itself with --parallel and --enable-ccache. Silence errors from killed jobs due to tmp directory being gone. Write a couple of string functions, rtrim() and gsub(). Make path_exists() handle globs with spaces in them, by escaping the space. Use --host and --build args to autoconf configure to "cross-compile" for 32 bits, this is necessary for some dists, and does not work for others, remove it for dists where it does not work. Add COMMAND_MODE=unix2003 to the build environment, this is necessary to fix some build errors, why I have no clue, found it on stackoverflow. Pass -Wl,-no_compact_unwind in LDFLAGS to openssl, this is necessary for 32 bits. Force sfml to compile as 32 bit, it normally does not allow this. Remove shared-mime-info from this build, it's not necessary for anything and there are issues XML::Parser linked to our expat and brew perl that need to be resolved.
2018-06-30 10:38:22 +00:00
# issues with perl modules linked to our libs and brew perl
table_line_remove DISTS shared-mime-info
table_line_replace DIST_PREFIX libuuid /usr/stow/libuuid
table_line_append DIST_PRE_BUILD zip " \
sed -i.bak 's/-DZMEM//g; s/-DNO_DIR//g;' unix/configure \
"
if [ "$target_cpu" = i386 ]; then
table_line_replace DIST_CONFIGURE_OVERRIDES openssl './Configure darwin-i386-cc no-shared --prefix=/usr --openssldir=/etc/ssl'
else
table_line_replace DIST_CONFIGURE_OVERRIDES openssl './Configure darwin64-x86_64-cc no-shared --prefix=/usr --openssldir=/etc/ssl'
fi
support older 32 bit macs running 10.7, fix build Make mac builder use -m32 in CFLAGS etc. to produce a 32 bit binary targetting 10.7 (Lion.) This provides the greatest backward compatibility for older macs, and also allows for asm filters. Fix an issue with m4 on 10.13 using a patch from macports. Support `-pX` patch level args in DIST_PATCHES in builder. Fix an issue with bison on 10.13 by bumping the version to 3.0.5. Build libxslt `--without-crypto` so that it doesn't try to link the brew libgcrypt. Invoke cmake for dists with -DCMAKE_C_COMPILER_LAUNCHER=ccache and -DCMAKE_CXX_COMPILER_LAUNCHER=ccache to use ccache, and set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER to the actual compilers not prefixed by ccache. When checking for ccache in vbam cmake code, check that CMAKE_CXX_COMPILER_LAUNCHER and CMAKE_C_COMPILER_LAUNCHER were not already defined (generally on the command line.) Remove align attributes from sections in 2xSaImmx.asm, macho format on mac does not support this and the filter works fine without them. In the Quartz2D renderer, pass the NSRect view.bounds through NSRectToCGRect when calling CGContextDrawImage(), this is necessary for the 32 bit API. Bump openssl to 1.0.2o. Bump libxml2 to 2.9.8. Update URL for urw fonts, and improve the dist downloading/unpacking code to handle URLs that do not contain the filename (for .tar.gz and .zip as identified by `file`.) Change post-build for harfbuzz from `rebuild_dist freetype;` to `rebuild_dist freetype --with-harfbuzz=yes;` as it was supposed to have been. Build cmake itself with --parallel and --enable-ccache. Silence errors from killed jobs due to tmp directory being gone. Write a couple of string functions, rtrim() and gsub(). Make path_exists() handle globs with spaces in them, by escaping the space. Use --host and --build args to autoconf configure to "cross-compile" for 32 bits, this is necessary for some dists, and does not work for others, remove it for dists where it does not work. Add COMMAND_MODE=unix2003 to the build environment, this is necessary to fix some build errors, why I have no clue, found it on stackoverflow. Pass -Wl,-no_compact_unwind in LDFLAGS to openssl, this is necessary for 32 bits. Force sfml to compile as 32 bit, it normally does not allow this. Remove shared-mime-info from this build, it's not necessary for anything and there are issues XML::Parser linked to our expat and brew perl that need to be resolved.
2018-06-30 10:38:22 +00:00
builder: update core dists and macOS build cmake: Add cmake option `DISABLE_MACOS_PACKAGE_MANAGERS` to disable automatically using macOS Homebrew, MacPorts or Fink. Use `-Ofast` instead of `-O2` for default compiler optimization flags, which enables `-ffast-math` among a few other tweaks. There is a lot of controversy about this, but in our testing on MSVC with `/fp:fast` the performance increase for this specific app is dramatic. Update version regexps on the SFML headers in `FindSFML.cmake` to allow for a variable number of spaces between the macro and its definition. Update the version of the Sparkle update checker framework for macOS from 1.23.0 to 2.3.0-beta.2, and add a command to the cmake commands for copying the framework to the `.app` to delete it first if already copied. Builder dist changes: Updates: dist old v new v ============================================================== xz 5.2.4 5.2.6 openssl 1.1.1f 1.1.1g curl 7.65.3 7.85.0 ccache 3.4.3 4.6.3 cmake 3.19.4 3.24.1 autoconf 2.69 2.71 autoconf-archive 2017.09.28 2022.09.03 libtool 2.4.6 2.4.7 help2man 1.47.5 1.49.2 libiconv 1.16 1.17 gsed 4.4 4.8 bison 3.0.5 3.8.2 texinfo 6.5 6.8 flex e7d45afc ea6493d9 libicu 65_1 71_1 nasm 2.14.02 2.15.05 pcre 8.41 8.45 libffi 3.2.1 3.4.2 libxml2 2.9.12 2.10.2 libxslt 1.1.33-rc2 1.1.37 XML-SAX 0.99 1.02 expat 2.2.4 2.4.8 libjpeg-turbo 2.0.4 2.1.4 libtiff 4.1.0 4.4.0 freetype 2.10.0 2.12.1 libgd 2.2.5 2.3.3 liberation 2.0.1 2.1.5 urw 91edd6ec 20200910 graphviz 4bf0ec9b 5.0.1 python2 2.7.15 2.7.18 python3 3.9.1 3.10.6 swig 3.0.12 4.0.2 doxygen 1.8.14 1.9.5 bakefile 33c270a5 7a218d89 XML-Parser 2.44 2.46 ninja 1.9.0 1.11.1 meson 0.51.2 0.63.2 glib 2.62.2 51251940 libgpg-error 1.41 1.45 libgcrypt 1.8.5 1.10.1 libsecret 0.19.1 0.20.5 sdl2 2.0.10 2.24.0 flac 1.3.3 1.3.4 libogg 1.3.4 1.3.5 libvorbis 1.3.6 1.3.7 harfbuzz 1.7.5 5.1.0 sfml 03375688 2.5.1 shared-mime-info 1.9 2.2 wxwidgets 9cc0c9a0 31720e1e graphite2 ce0e793f 425da3d0 xvidcore 1.3.5 1.3.7 fribidi 1.0.1 1.0.12 libgsm 1.0.18 1.0.22 libmodplug 5a39f591 d1b97ed0 libopencore-amrnb 0.1.5 0.1.6 snappy 1.1.7 af720f9a speex 1.2.0 1.2.1 vidstab 1.1.0 90c76aca libvo-amrwbenc 0.1.3 3b3fcd0d libass 0.14.0 0.16.0 libbluray 1.1.2 1.3.2 libvpx 1.8.1 1.12.0 libx264 20190913-2245 f7074e12 libxavs distrotech-xavs-git 8300fbf4 libzmq 4.2.2 4.3.4 ffmpeg 4.3.1 5.1.1 Removed dists: dist ver ========================= zlib 1.2.11 pkgconfig 0.29.2 docbook5.0 5.0 libwavpack 5.1.0 Added dists: dist ver ======================== zlib-ng ce01b1e4 zstd 1.5.2 hiredis 1.0.2 pkgconf 1.9.3 pcre2 10.40 docbook5.0.1 5.0.1 docbook5.1 5.1 Changes: Update all non-working dist URLs. Replace zlib 1.2.11 with a recent zlib-ng built with `--zlib-compat`. Add zstd and hiredis, new deps of ccache. Replace pkgconfig with pkgconf. Use both pcre1 and pcre2. Remove the libxml2-python dist alias and rebuild libxml2 `--with-python` and `--with-python3` after python 2 and 3 have built. Remove libwavpack as ffmpeg 5 no longer uses it as a dependency. Builder core: Rename some of the directories and files to be a bit nicer. Add `-Ofast -march=core2 -mtune=generic -pipe` to the global `{C,CXX,OBJC,LD}FLAGS`. These are the optimization settings used by default in the project as well, while `-pipe` significantly reduces build time by making the compiler use pipes internally. Add `-DFLOAT_APPROX` to the global `{CPP,C,CXX,OBJC}FLAGS` because we are now using `-Ofast` and consequently, `-ffast-math`. Set the `LIBRARY_PATH` variable in the global environment. Make some adjustments for the new dist versions and make some other improvements. macOS builder fixes (tested on High Sierra 10.13 and Catalina 10.15): Add support for predefined BUILD_ROOT and append BUILD_ROOT_SUFFIX. Allow pre-defined CHECKOUT directory for building the project sources. Sanitize `PATH` before build to remove `/usr/local` etc., use /usr/local/bin/brew explicitly for deps instead. If llvm and clang is installed from nix or brew, prepend the path of the highest version found to `PATH`. Remove `-lm` from build environment as macOS has never had an `m` math library and this causes problems in some config checks. Add LLVM `libunwind` from the LLVM archive. Add a patch for `glib`'s `meson.build` to statically link `gettext`/`libintl`, adds `-liconv -framework CoreFoundation`. Add an extra location to check for `stdint.h` in XCode. Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2022-11-11 14:19:47 +00:00
stdint_h=
if [ -f "$(xcode-select -p)/SDKs/MacOSX.sdk/usr/include/stdint.h" ]; then
stdint_h="\"$(xcode-select -p)\"/SDKs/MacOSX.sdk/usr/include/stdint.h"
elif [ -f "$(xcode-select -p)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/stdint.h" ]; then
stdint_h="\"$(xcode-select -p)\"/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/stdint.h"
else
die "Can't find macOS SDK 'stdint.h'"
fi
table_line_append DIST_EXTRA_CFLAGS libogg "-include $stdint_h"
builder: update core dists and macOS build cmake: Add cmake option `DISABLE_MACOS_PACKAGE_MANAGERS` to disable automatically using macOS Homebrew, MacPorts or Fink. Use `-Ofast` instead of `-O2` for default compiler optimization flags, which enables `-ffast-math` among a few other tweaks. There is a lot of controversy about this, but in our testing on MSVC with `/fp:fast` the performance increase for this specific app is dramatic. Update version regexps on the SFML headers in `FindSFML.cmake` to allow for a variable number of spaces between the macro and its definition. Update the version of the Sparkle update checker framework for macOS from 1.23.0 to 2.3.0-beta.2, and add a command to the cmake commands for copying the framework to the `.app` to delete it first if already copied. Builder dist changes: Updates: dist old v new v ============================================================== xz 5.2.4 5.2.6 openssl 1.1.1f 1.1.1g curl 7.65.3 7.85.0 ccache 3.4.3 4.6.3 cmake 3.19.4 3.24.1 autoconf 2.69 2.71 autoconf-archive 2017.09.28 2022.09.03 libtool 2.4.6 2.4.7 help2man 1.47.5 1.49.2 libiconv 1.16 1.17 gsed 4.4 4.8 bison 3.0.5 3.8.2 texinfo 6.5 6.8 flex e7d45afc ea6493d9 libicu 65_1 71_1 nasm 2.14.02 2.15.05 pcre 8.41 8.45 libffi 3.2.1 3.4.2 libxml2 2.9.12 2.10.2 libxslt 1.1.33-rc2 1.1.37 XML-SAX 0.99 1.02 expat 2.2.4 2.4.8 libjpeg-turbo 2.0.4 2.1.4 libtiff 4.1.0 4.4.0 freetype 2.10.0 2.12.1 libgd 2.2.5 2.3.3 liberation 2.0.1 2.1.5 urw 91edd6ec 20200910 graphviz 4bf0ec9b 5.0.1 python2 2.7.15 2.7.18 python3 3.9.1 3.10.6 swig 3.0.12 4.0.2 doxygen 1.8.14 1.9.5 bakefile 33c270a5 7a218d89 XML-Parser 2.44 2.46 ninja 1.9.0 1.11.1 meson 0.51.2 0.63.2 glib 2.62.2 51251940 libgpg-error 1.41 1.45 libgcrypt 1.8.5 1.10.1 libsecret 0.19.1 0.20.5 sdl2 2.0.10 2.24.0 flac 1.3.3 1.3.4 libogg 1.3.4 1.3.5 libvorbis 1.3.6 1.3.7 harfbuzz 1.7.5 5.1.0 sfml 03375688 2.5.1 shared-mime-info 1.9 2.2 wxwidgets 9cc0c9a0 31720e1e graphite2 ce0e793f 425da3d0 xvidcore 1.3.5 1.3.7 fribidi 1.0.1 1.0.12 libgsm 1.0.18 1.0.22 libmodplug 5a39f591 d1b97ed0 libopencore-amrnb 0.1.5 0.1.6 snappy 1.1.7 af720f9a speex 1.2.0 1.2.1 vidstab 1.1.0 90c76aca libvo-amrwbenc 0.1.3 3b3fcd0d libass 0.14.0 0.16.0 libbluray 1.1.2 1.3.2 libvpx 1.8.1 1.12.0 libx264 20190913-2245 f7074e12 libxavs distrotech-xavs-git 8300fbf4 libzmq 4.2.2 4.3.4 ffmpeg 4.3.1 5.1.1 Removed dists: dist ver ========================= zlib 1.2.11 pkgconfig 0.29.2 docbook5.0 5.0 libwavpack 5.1.0 Added dists: dist ver ======================== zlib-ng ce01b1e4 zstd 1.5.2 hiredis 1.0.2 pkgconf 1.9.3 pcre2 10.40 docbook5.0.1 5.0.1 docbook5.1 5.1 Changes: Update all non-working dist URLs. Replace zlib 1.2.11 with a recent zlib-ng built with `--zlib-compat`. Add zstd and hiredis, new deps of ccache. Replace pkgconfig with pkgconf. Use both pcre1 and pcre2. Remove the libxml2-python dist alias and rebuild libxml2 `--with-python` and `--with-python3` after python 2 and 3 have built. Remove libwavpack as ffmpeg 5 no longer uses it as a dependency. Builder core: Rename some of the directories and files to be a bit nicer. Add `-Ofast -march=core2 -mtune=generic -pipe` to the global `{C,CXX,OBJC,LD}FLAGS`. These are the optimization settings used by default in the project as well, while `-pipe` significantly reduces build time by making the compiler use pipes internally. Add `-DFLOAT_APPROX` to the global `{CPP,C,CXX,OBJC}FLAGS` because we are now using `-Ofast` and consequently, `-ffast-math`. Set the `LIBRARY_PATH` variable in the global environment. Make some adjustments for the new dist versions and make some other improvements. macOS builder fixes (tested on High Sierra 10.13 and Catalina 10.15): Add support for predefined BUILD_ROOT and append BUILD_ROOT_SUFFIX. Allow pre-defined CHECKOUT directory for building the project sources. Sanitize `PATH` before build to remove `/usr/local` etc., use /usr/local/bin/brew explicitly for deps instead. If llvm and clang is installed from nix or brew, prepend the path of the highest version found to `PATH`. Remove `-lm` from build environment as macOS has never had an `m` math library and this causes problems in some config checks. Add LLVM `libunwind` from the LLVM archive. Add a patch for `glib`'s `meson.build` to statically link `gettext`/`libintl`, adds `-liconv -framework CoreFoundation`. Add an extra location to check for `stdint.h` in XCode. Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2022-11-11 14:19:47 +00:00
table_line_append DIST_EXTRA_CFLAGS libvorbis "-include $stdint_h"
builder: update core dists and macOS build cmake: Add cmake option `DISABLE_MACOS_PACKAGE_MANAGERS` to disable automatically using macOS Homebrew, MacPorts or Fink. Use `-Ofast` instead of `-O2` for default compiler optimization flags, which enables `-ffast-math` among a few other tweaks. There is a lot of controversy about this, but in our testing on MSVC with `/fp:fast` the performance increase for this specific app is dramatic. Update version regexps on the SFML headers in `FindSFML.cmake` to allow for a variable number of spaces between the macro and its definition. Update the version of the Sparkle update checker framework for macOS from 1.23.0 to 2.3.0-beta.2, and add a command to the cmake commands for copying the framework to the `.app` to delete it first if already copied. Builder dist changes: Updates: dist old v new v ============================================================== xz 5.2.4 5.2.6 openssl 1.1.1f 1.1.1g curl 7.65.3 7.85.0 ccache 3.4.3 4.6.3 cmake 3.19.4 3.24.1 autoconf 2.69 2.71 autoconf-archive 2017.09.28 2022.09.03 libtool 2.4.6 2.4.7 help2man 1.47.5 1.49.2 libiconv 1.16 1.17 gsed 4.4 4.8 bison 3.0.5 3.8.2 texinfo 6.5 6.8 flex e7d45afc ea6493d9 libicu 65_1 71_1 nasm 2.14.02 2.15.05 pcre 8.41 8.45 libffi 3.2.1 3.4.2 libxml2 2.9.12 2.10.2 libxslt 1.1.33-rc2 1.1.37 XML-SAX 0.99 1.02 expat 2.2.4 2.4.8 libjpeg-turbo 2.0.4 2.1.4 libtiff 4.1.0 4.4.0 freetype 2.10.0 2.12.1 libgd 2.2.5 2.3.3 liberation 2.0.1 2.1.5 urw 91edd6ec 20200910 graphviz 4bf0ec9b 5.0.1 python2 2.7.15 2.7.18 python3 3.9.1 3.10.6 swig 3.0.12 4.0.2 doxygen 1.8.14 1.9.5 bakefile 33c270a5 7a218d89 XML-Parser 2.44 2.46 ninja 1.9.0 1.11.1 meson 0.51.2 0.63.2 glib 2.62.2 51251940 libgpg-error 1.41 1.45 libgcrypt 1.8.5 1.10.1 libsecret 0.19.1 0.20.5 sdl2 2.0.10 2.24.0 flac 1.3.3 1.3.4 libogg 1.3.4 1.3.5 libvorbis 1.3.6 1.3.7 harfbuzz 1.7.5 5.1.0 sfml 03375688 2.5.1 shared-mime-info 1.9 2.2 wxwidgets 9cc0c9a0 31720e1e graphite2 ce0e793f 425da3d0 xvidcore 1.3.5 1.3.7 fribidi 1.0.1 1.0.12 libgsm 1.0.18 1.0.22 libmodplug 5a39f591 d1b97ed0 libopencore-amrnb 0.1.5 0.1.6 snappy 1.1.7 af720f9a speex 1.2.0 1.2.1 vidstab 1.1.0 90c76aca libvo-amrwbenc 0.1.3 3b3fcd0d libass 0.14.0 0.16.0 libbluray 1.1.2 1.3.2 libvpx 1.8.1 1.12.0 libx264 20190913-2245 f7074e12 libxavs distrotech-xavs-git 8300fbf4 libzmq 4.2.2 4.3.4 ffmpeg 4.3.1 5.1.1 Removed dists: dist ver ========================= zlib 1.2.11 pkgconfig 0.29.2 docbook5.0 5.0 libwavpack 5.1.0 Added dists: dist ver ======================== zlib-ng ce01b1e4 zstd 1.5.2 hiredis 1.0.2 pkgconf 1.9.3 pcre2 10.40 docbook5.0.1 5.0.1 docbook5.1 5.1 Changes: Update all non-working dist URLs. Replace zlib 1.2.11 with a recent zlib-ng built with `--zlib-compat`. Add zstd and hiredis, new deps of ccache. Replace pkgconfig with pkgconf. Use both pcre1 and pcre2. Remove the libxml2-python dist alias and rebuild libxml2 `--with-python` and `--with-python3` after python 2 and 3 have built. Remove libwavpack as ffmpeg 5 no longer uses it as a dependency. Builder core: Rename some of the directories and files to be a bit nicer. Add `-Ofast -march=core2 -mtune=generic -pipe` to the global `{C,CXX,OBJC,LD}FLAGS`. These are the optimization settings used by default in the project as well, while `-pipe` significantly reduces build time by making the compiler use pipes internally. Add `-DFLOAT_APPROX` to the global `{CPP,C,CXX,OBJC}FLAGS` because we are now using `-Ofast` and consequently, `-ffast-math`. Set the `LIBRARY_PATH` variable in the global environment. Make some adjustments for the new dist versions and make some other improvements. macOS builder fixes (tested on High Sierra 10.13 and Catalina 10.15): Add support for predefined BUILD_ROOT and append BUILD_ROOT_SUFFIX. Allow pre-defined CHECKOUT directory for building the project sources. Sanitize `PATH` before build to remove `/usr/local` etc., use /usr/local/bin/brew explicitly for deps instead. If llvm and clang is installed from nix or brew, prepend the path of the highest version found to `PATH`. Remove `-lm` from build environment as macOS has never had an `m` math library and this causes problems in some config checks. Add LLVM `libunwind` from the LLVM archive. Add a patch for `glib`'s `meson.build` to statically link `gettext`/`libintl`, adds `-liconv -framework CoreFoundation`. Add an extra location to check for `stdint.h` in XCode. Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2022-11-11 14:19:47 +00:00
table_line_append DIST_EXTRA_CFLAGS libtheora "-include $stdint_h"
builder: update core dists and macOS build cmake: Add cmake option `DISABLE_MACOS_PACKAGE_MANAGERS` to disable automatically using macOS Homebrew, MacPorts or Fink. Use `-Ofast` instead of `-O2` for default compiler optimization flags, which enables `-ffast-math` among a few other tweaks. There is a lot of controversy about this, but in our testing on MSVC with `/fp:fast` the performance increase for this specific app is dramatic. Update version regexps on the SFML headers in `FindSFML.cmake` to allow for a variable number of spaces between the macro and its definition. Update the version of the Sparkle update checker framework for macOS from 1.23.0 to 2.3.0-beta.2, and add a command to the cmake commands for copying the framework to the `.app` to delete it first if already copied. Builder dist changes: Updates: dist old v new v ============================================================== xz 5.2.4 5.2.6 openssl 1.1.1f 1.1.1g curl 7.65.3 7.85.0 ccache 3.4.3 4.6.3 cmake 3.19.4 3.24.1 autoconf 2.69 2.71 autoconf-archive 2017.09.28 2022.09.03 libtool 2.4.6 2.4.7 help2man 1.47.5 1.49.2 libiconv 1.16 1.17 gsed 4.4 4.8 bison 3.0.5 3.8.2 texinfo 6.5 6.8 flex e7d45afc ea6493d9 libicu 65_1 71_1 nasm 2.14.02 2.15.05 pcre 8.41 8.45 libffi 3.2.1 3.4.2 libxml2 2.9.12 2.10.2 libxslt 1.1.33-rc2 1.1.37 XML-SAX 0.99 1.02 expat 2.2.4 2.4.8 libjpeg-turbo 2.0.4 2.1.4 libtiff 4.1.0 4.4.0 freetype 2.10.0 2.12.1 libgd 2.2.5 2.3.3 liberation 2.0.1 2.1.5 urw 91edd6ec 20200910 graphviz 4bf0ec9b 5.0.1 python2 2.7.15 2.7.18 python3 3.9.1 3.10.6 swig 3.0.12 4.0.2 doxygen 1.8.14 1.9.5 bakefile 33c270a5 7a218d89 XML-Parser 2.44 2.46 ninja 1.9.0 1.11.1 meson 0.51.2 0.63.2 glib 2.62.2 51251940 libgpg-error 1.41 1.45 libgcrypt 1.8.5 1.10.1 libsecret 0.19.1 0.20.5 sdl2 2.0.10 2.24.0 flac 1.3.3 1.3.4 libogg 1.3.4 1.3.5 libvorbis 1.3.6 1.3.7 harfbuzz 1.7.5 5.1.0 sfml 03375688 2.5.1 shared-mime-info 1.9 2.2 wxwidgets 9cc0c9a0 31720e1e graphite2 ce0e793f 425da3d0 xvidcore 1.3.5 1.3.7 fribidi 1.0.1 1.0.12 libgsm 1.0.18 1.0.22 libmodplug 5a39f591 d1b97ed0 libopencore-amrnb 0.1.5 0.1.6 snappy 1.1.7 af720f9a speex 1.2.0 1.2.1 vidstab 1.1.0 90c76aca libvo-amrwbenc 0.1.3 3b3fcd0d libass 0.14.0 0.16.0 libbluray 1.1.2 1.3.2 libvpx 1.8.1 1.12.0 libx264 20190913-2245 f7074e12 libxavs distrotech-xavs-git 8300fbf4 libzmq 4.2.2 4.3.4 ffmpeg 4.3.1 5.1.1 Removed dists: dist ver ========================= zlib 1.2.11 pkgconfig 0.29.2 docbook5.0 5.0 libwavpack 5.1.0 Added dists: dist ver ======================== zlib-ng ce01b1e4 zstd 1.5.2 hiredis 1.0.2 pkgconf 1.9.3 pcre2 10.40 docbook5.0.1 5.0.1 docbook5.1 5.1 Changes: Update all non-working dist URLs. Replace zlib 1.2.11 with a recent zlib-ng built with `--zlib-compat`. Add zstd and hiredis, new deps of ccache. Replace pkgconfig with pkgconf. Use both pcre1 and pcre2. Remove the libxml2-python dist alias and rebuild libxml2 `--with-python` and `--with-python3` after python 2 and 3 have built. Remove libwavpack as ffmpeg 5 no longer uses it as a dependency. Builder core: Rename some of the directories and files to be a bit nicer. Add `-Ofast -march=core2 -mtune=generic -pipe` to the global `{C,CXX,OBJC,LD}FLAGS`. These are the optimization settings used by default in the project as well, while `-pipe` significantly reduces build time by making the compiler use pipes internally. Add `-DFLOAT_APPROX` to the global `{CPP,C,CXX,OBJC}FLAGS` because we are now using `-Ofast` and consequently, `-ffast-math`. Set the `LIBRARY_PATH` variable in the global environment. Make some adjustments for the new dist versions and make some other improvements. macOS builder fixes (tested on High Sierra 10.13 and Catalina 10.15): Add support for predefined BUILD_ROOT and append BUILD_ROOT_SUFFIX. Allow pre-defined CHECKOUT directory for building the project sources. Sanitize `PATH` before build to remove `/usr/local` etc., use /usr/local/bin/brew explicitly for deps instead. If llvm and clang is installed from nix or brew, prepend the path of the highest version found to `PATH`. Remove `-lm` from build environment as macOS has never had an `m` math library and this causes problems in some config checks. Add LLVM `libunwind` from the LLVM archive. Add a patch for `glib`'s `meson.build` to statically link `gettext`/`libintl`, adds `-liconv -framework CoreFoundation`. Add an extra location to check for `stdint.h` in XCode. Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2022-11-11 14:19:47 +00:00
table_line_append DIST_EXTRA_CFLAGS ffmpeg "-include $stdint_h"
table_line_append DIST_MAKE_ARGS unzip "LD=clang"
# -Wl,-no_compact_unwind must be passed in LDFLAGS to openssl
support older 32 bit macs running 10.7, fix build Make mac builder use -m32 in CFLAGS etc. to produce a 32 bit binary targetting 10.7 (Lion.) This provides the greatest backward compatibility for older macs, and also allows for asm filters. Fix an issue with m4 on 10.13 using a patch from macports. Support `-pX` patch level args in DIST_PATCHES in builder. Fix an issue with bison on 10.13 by bumping the version to 3.0.5. Build libxslt `--without-crypto` so that it doesn't try to link the brew libgcrypt. Invoke cmake for dists with -DCMAKE_C_COMPILER_LAUNCHER=ccache and -DCMAKE_CXX_COMPILER_LAUNCHER=ccache to use ccache, and set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER to the actual compilers not prefixed by ccache. When checking for ccache in vbam cmake code, check that CMAKE_CXX_COMPILER_LAUNCHER and CMAKE_C_COMPILER_LAUNCHER were not already defined (generally on the command line.) Remove align attributes from sections in 2xSaImmx.asm, macho format on mac does not support this and the filter works fine without them. In the Quartz2D renderer, pass the NSRect view.bounds through NSRectToCGRect when calling CGContextDrawImage(), this is necessary for the 32 bit API. Bump openssl to 1.0.2o. Bump libxml2 to 2.9.8. Update URL for urw fonts, and improve the dist downloading/unpacking code to handle URLs that do not contain the filename (for .tar.gz and .zip as identified by `file`.) Change post-build for harfbuzz from `rebuild_dist freetype;` to `rebuild_dist freetype --with-harfbuzz=yes;` as it was supposed to have been. Build cmake itself with --parallel and --enable-ccache. Silence errors from killed jobs due to tmp directory being gone. Write a couple of string functions, rtrim() and gsub(). Make path_exists() handle globs with spaces in them, by escaping the space. Use --host and --build args to autoconf configure to "cross-compile" for 32 bits, this is necessary for some dists, and does not work for others, remove it for dists where it does not work. Add COMMAND_MODE=unix2003 to the build environment, this is necessary to fix some build errors, why I have no clue, found it on stackoverflow. Pass -Wl,-no_compact_unwind in LDFLAGS to openssl, this is necessary for 32 bits. Force sfml to compile as 32 bit, it normally does not allow this. Remove shared-mime-info from this build, it's not necessary for anything and there are issues XML::Parser linked to our expat and brew perl that need to be resolved.
2018-06-30 10:38:22 +00:00
table_line_append DIST_MAKE_ARGS openssl "LDFLAGS=\"\$LDFLAGS\""
# these are only applicable for cross-compiling to 32 bits
if [ "$target_cpu" = i386 ]; then
# some dists will not cross compile without a CONFIG_SITE
table_line_append DIST_ARGS pkgconfig '--host= --build='
table_line_append DIST_ARGS docbook2x '--host= --build='
support older 32 bit macs running 10.7, fix build Make mac builder use -m32 in CFLAGS etc. to produce a 32 bit binary targetting 10.7 (Lion.) This provides the greatest backward compatibility for older macs, and also allows for asm filters. Fix an issue with m4 on 10.13 using a patch from macports. Support `-pX` patch level args in DIST_PATCHES in builder. Fix an issue with bison on 10.13 by bumping the version to 3.0.5. Build libxslt `--without-crypto` so that it doesn't try to link the brew libgcrypt. Invoke cmake for dists with -DCMAKE_C_COMPILER_LAUNCHER=ccache and -DCMAKE_CXX_COMPILER_LAUNCHER=ccache to use ccache, and set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER to the actual compilers not prefixed by ccache. When checking for ccache in vbam cmake code, check that CMAKE_CXX_COMPILER_LAUNCHER and CMAKE_C_COMPILER_LAUNCHER were not already defined (generally on the command line.) Remove align attributes from sections in 2xSaImmx.asm, macho format on mac does not support this and the filter works fine without them. In the Quartz2D renderer, pass the NSRect view.bounds through NSRectToCGRect when calling CGContextDrawImage(), this is necessary for the 32 bit API. Bump openssl to 1.0.2o. Bump libxml2 to 2.9.8. Update URL for urw fonts, and improve the dist downloading/unpacking code to handle URLs that do not contain the filename (for .tar.gz and .zip as identified by `file`.) Change post-build for harfbuzz from `rebuild_dist freetype;` to `rebuild_dist freetype --with-harfbuzz=yes;` as it was supposed to have been. Build cmake itself with --parallel and --enable-ccache. Silence errors from killed jobs due to tmp directory being gone. Write a couple of string functions, rtrim() and gsub(). Make path_exists() handle globs with spaces in them, by escaping the space. Use --host and --build args to autoconf configure to "cross-compile" for 32 bits, this is necessary for some dists, and does not work for others, remove it for dists where it does not work. Add COMMAND_MODE=unix2003 to the build environment, this is necessary to fix some build errors, why I have no clue, found it on stackoverflow. Pass -Wl,-no_compact_unwind in LDFLAGS to openssl, this is necessary for 32 bits. Force sfml to compile as 32 bit, it normally does not allow this. Remove shared-mime-info from this build, it's not necessary for anything and there are issues XML::Parser linked to our expat and brew perl that need to be resolved.
2018-06-30 10:38:22 +00:00
# python does not support cross-compiling to 32bits
table_line_append DIST_ARGS python2 '--host= --build='
table_line_append DIST_ARGS python3 '--host= --build='
support older 32 bit macs running 10.7, fix build Make mac builder use -m32 in CFLAGS etc. to produce a 32 bit binary targetting 10.7 (Lion.) This provides the greatest backward compatibility for older macs, and also allows for asm filters. Fix an issue with m4 on 10.13 using a patch from macports. Support `-pX` patch level args in DIST_PATCHES in builder. Fix an issue with bison on 10.13 by bumping the version to 3.0.5. Build libxslt `--without-crypto` so that it doesn't try to link the brew libgcrypt. Invoke cmake for dists with -DCMAKE_C_COMPILER_LAUNCHER=ccache and -DCMAKE_CXX_COMPILER_LAUNCHER=ccache to use ccache, and set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER to the actual compilers not prefixed by ccache. When checking for ccache in vbam cmake code, check that CMAKE_CXX_COMPILER_LAUNCHER and CMAKE_C_COMPILER_LAUNCHER were not already defined (generally on the command line.) Remove align attributes from sections in 2xSaImmx.asm, macho format on mac does not support this and the filter works fine without them. In the Quartz2D renderer, pass the NSRect view.bounds through NSRectToCGRect when calling CGContextDrawImage(), this is necessary for the 32 bit API. Bump openssl to 1.0.2o. Bump libxml2 to 2.9.8. Update URL for urw fonts, and improve the dist downloading/unpacking code to handle URLs that do not contain the filename (for .tar.gz and .zip as identified by `file`.) Change post-build for harfbuzz from `rebuild_dist freetype;` to `rebuild_dist freetype --with-harfbuzz=yes;` as it was supposed to have been. Build cmake itself with --parallel and --enable-ccache. Silence errors from killed jobs due to tmp directory being gone. Write a couple of string functions, rtrim() and gsub(). Make path_exists() handle globs with spaces in them, by escaping the space. Use --host and --build args to autoconf configure to "cross-compile" for 32 bits, this is necessary for some dists, and does not work for others, remove it for dists where it does not work. Add COMMAND_MODE=unix2003 to the build environment, this is necessary to fix some build errors, why I have no clue, found it on stackoverflow. Pass -Wl,-no_compact_unwind in LDFLAGS to openssl, this is necessary for 32 bits. Force sfml to compile as 32 bit, it normally does not allow this. Remove shared-mime-info from this build, it's not necessary for anything and there are issues XML::Parser linked to our expat and brew perl that need to be resolved.
2018-06-30 10:38:22 +00:00
table_line_append DIST_ARGS sfml '-DCMAKE_OSX_ARCHITECTURES=i386'
table_line_append DIST_PRE_BUILD sfml " \
sed -i.bak '/FATAL_ERROR \"Only 64-bit architecture is supported/d' CMakeLists.txt; \
"
table_line_append DIST_ARGS libicu '--host= --build='
fi
table_line_replace DIST_CONFIGURE_TYPES libmodplug autoreconf
table_line_append DIST_PRE_BUILD libmodplug " \
sed -i.bak '/-mmacosx-version-min=/d' configure.ac; \
sed -i.bak 's/-lstdc++/-lc++/g' libmodplug.pc.in; \
"
table_line_append DIST_PRE_BUILD libzmq "sed -i.bak 's/-lstdc++/-lc++/g' src/libzmq.pc.in"
table_line_append DIST_PRE_BUILD ffmpeg "sed -i.bak 's/-lstdc++/-lc++/g' configure"
# For a 10.7 target:
#table_line_replace DISTS wxwidgets "https://github.com/wxWidgets/wxWidgets/releases/download/v3.0.5.1/wxWidgets-3.0.5.1.tar.bz2 lib/libwx_baseu-3.0*.a"
# For 10.7 add --disable-stl
build: macOS builder updates Bump openssl, curl, glib, sdl2, sfml, wxWidgets and ffmpeg. Add support for DIST_INSTALL_TARGETS in order to use `make install_sw` instead of `make install` for openssl because installing the man pages and symlinks to them is very painfully slow with my install code. It's even more painfully slow with whatever whoever did to my macOS virtual machine. Add `brew unlink openssl@3` in the brew setup code because someone broke my compiler and it's not giving precedence to the include directories passed on the command line, breaking the build. Remove `-stdlib=libc++` from compiler flags. This was only necessary when using a 10.7 macOS target, which has both libstdc++ and libc++, libc++ being the newer and current distribution of the C++ standard library for clang and macOS. We are now using a 10.10 macOS target which does not have the old libstdc++, and this compiler option no longer exists, causing a build failure in glib due to -Werror and an unused command line option warning. Remove my patch to link gettext statically for glib, this has been fixed in the newer versions. Install meson using pip in the python3 POST_BUILD instead of using a dist. Add the variables MAKE and MESON to point to the respective invoking commands. Check for /usr/bin/perl before /usr/local/bin/perl, the brew perl no longer works but the macOS perl does. Fix overwriting meson with a symlink when meson has already been installed. Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2023-10-18 23:40:22 +00:00
table_line_append DIST_ARGS wxwidgets "--with-macosx-version-min=\$MACOSX_DEPLOYMENT_TARGET"
table_line_append DIST_ARGS libmodplug "CC=clang++ CXX=clang++"
table_line_append DIST_PRE_BUILD libvpx " \
sed -E -i.bak 's/(-mmacosx-version-min=)[[:digit:].]+/\1'\$MACOSX_DEPLOYMENT_TARGET'/g' build/make/configure.sh; \
"
table_line_append DIST_CONFIGURE_OVERRIDES ffmpeg "--disable-videotoolbox --extra-ldflags='-framework CoreText'"
#table_line_append DIST_PATCHES ffmpeg "-p0 https://gist.githubusercontent.com/rkitover/db75d083b74617b186eec11965c1da74/raw/20da2f8c6d8c02ce284096c5e805ae671351cc6e/ffmpeg-macos10-7.patch"
builder "$@"
if [ -n "$PREV_XCODE" ]; then
printf "\nRe-setting '$PREV_XCODE' as the default Xcode...\n\n"
sudo xcode-select -s "$PREV_XCODE"
fi