From 349877296b0ae15356ae839c1f54766a5d6d6efe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Thu, 6 Oct 2022 00:50:27 +0300 Subject: [PATCH] Allow overriding what archs to build for, or what version to target, for MACOS_REDIST builds --- build-lldb-mi.sh | 13 +++++++++++-- build-llvm.sh | 23 +++++++++++++++++++++-- build-mingw-w64-tools.sh | 21 +++++++++++++++++++-- install-wrappers.sh | 7 ++++++- 4 files changed, 57 insertions(+), 7 deletions(-) diff --git a/build-lldb-mi.sh b/build-lldb-mi.sh index 85e0a49..5fab687 100755 --- a/build-lldb-mi.sh +++ b/build-lldb-mi.sh @@ -103,8 +103,17 @@ if [ -n "$HOST" ]; then fi if [ -n "$MACOS_REDIST" ]; then - CMAKEFLAGS="$CMAKEFLAGS -DCMAKE_OSX_ARCHITECTURES=arm64;x86_64" - CMAKEFLAGS="$CMAKEFLAGS -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9" + : ${MACOS_REDIST_ARCHS:=arm64 x86_64} + : ${MACOS_REDIST_VERSION:=10.9} + ARCH_LIST="" + for arch in $MACOS_REDIST_ARCHS; do + if [ -n "$ARCH_LIST" ]; then + ARCH_LIST="$ARCH_LIST;" + fi + ARCH_LIST="$ARCH_LIST$arch" + done + CMAKEFLAGS="$CMAKEFLAGS -DCMAKE_OSX_ARCHITECTURES=$ARCH_LIST" + CMAKEFLAGS="$CMAKEFLAGS -DCMAKE_OSX_DEPLOYMENT_TARGET=$MACOS_REDIST_VERSION" fi cd lldb-mi diff --git a/build-llvm.sh b/build-llvm.sh index 2272f31..fddf905 100755 --- a/build-llvm.sh +++ b/build-llvm.sh @@ -241,8 +241,27 @@ if [ -n "$LTO" ]; then fi if [ -n "$MACOS_REDIST" ]; then - CMAKEFLAGS="$CMAKEFLAGS -DCMAKE_OSX_ARCHITECTURES=arm64;x86_64" - CMAKEFLAGS="$CMAKEFLAGS -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9" + : ${MACOS_REDIST_ARCHS:=arm64 x86_64} + : ${MACOS_REDIST_VERSION:=10.9} + ARCH_LIST="" + NATIVE= + for arch in $MACOS_REDIST_ARCHS; do + if [ -n "$ARCH_LIST" ]; then + ARCH_LIST="$ARCH_LIST;" + fi + ARCH_LIST="$ARCH_LIST$arch" + if [ "$(uname -m)" = "$arch" ]; then + NATIVE=1 + fi + done + CMAKEFLAGS="$CMAKEFLAGS -DCMAKE_OSX_ARCHITECTURES=$ARCH_LIST" + CMAKEFLAGS="$CMAKEFLAGS -DCMAKE_OSX_DEPLOYMENT_TARGET=$MACOS_REDIST_VERSION" + if [ -z "$NATIVE" ]; then + # If we're not building for the native arch, flag to CMake that we're + # cross compiling, to let it build native versions of tools used + # during the build. + CMAKEFLAGS="$CMAKEFLAGS -DCMAKE_SYSTEM_NAME=Darwin" + fi fi if [ -z "$HOST" ] && [ "$(uname)" = "Darwin" ]; then diff --git a/build-mingw-w64-tools.sh b/build-mingw-w64-tools.sh index b6ea7f8..02bf837 100755 --- a/build-mingw-w64-tools.sh +++ b/build-mingw-w64-tools.sh @@ -74,9 +74,26 @@ else fi if [ -n "$MACOS_REDIST" ]; then if [ -z "$CFLAGS" ]; then - export CFLAGS="-g -O2" + CFLAGS="-g -O2" fi - export CFLAGS="$CFLAGS -arch arm64 -arch x86_64 -mmacosx-version-min=10.9" + : ${MACOS_REDIST_ARCHS:=arm64 x86_64} + : ${MACOS_REDIST_VERSION:=10.9} + NONNATIVE_ARCH= + for arch in $MACOS_REDIST_ARCHS; do + CFLAGS="$CFLAGS -arch $arch" + if [ "$(uname -m)" != "$arch" ]; then + case $arch in + arm64) NONNATIVE_ARCH=aarch64 ;; + *) NONNATIVE_ARCH=$arch ;; + esac + fi + done + if [ -n "$NONNATIVE_ARCH" ]; then + # If we're not building for the native arch, flag that we're + # cross compiling. + CONFIGFLAGS="$CONFIGFLAGS --host=$NONNATIVE_ARCH-apple-darwin" + fi + export CFLAGS="$CFLAGS -mmacosx-version-min=$MACOS_REDIST_VERSION" fi if [ -n "$SKIP_INCLUDE_TRIPLET_PREFIX" ]; then INCLUDEDIR="$PREFIX/include" diff --git a/install-wrappers.sh b/install-wrappers.sh index eaf2413..0b85fad 100755 --- a/install-wrappers.sh +++ b/install-wrappers.sh @@ -55,7 +55,12 @@ if [ -n "$HOST" ]; then fi if [ -n "$MACOS_REDIST" ]; then - WRAPPER_FLAGS="$WRAPPER_FLAGS -arch arm64 -arch x86_64 -mmacosx-version-min=10.9" + : ${MACOS_REDIST_ARCHS:=arm64 x86_64} + : ${MACOS_REDIST_VERSION:=10.9} + for arch in $MACOS_REDIST_ARCHS; do + WRAPPER_FLAGS="$WRAPPER_FLAGS -arch $arch" + done + WRAPPER_FLAGS="$WRAPPER_FLAGS -mmacosx-version-min=$MACOS_REDIST_VERSION" fi if [ -n "$EXEEXT" ]; then