You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
3.0 KiB
126 lines
3.0 KiB
#!/usr/bin/env bash
|
|
|
|
# Run this script on a macOS x86_64 host to generate Qt universal binaries.
|
|
#
|
|
# This script requires the 'makeuniversal' tool from:
|
|
#
|
|
# https://github.com/fizzyade/makeuniversal
|
|
#
|
|
# Build it with an existing local Qt installation first.
|
|
#
|
|
# Set the PATH environment variable to contain the location of 'makeuniversal'.
|
|
|
|
set -e
|
|
set -x
|
|
|
|
umask 022
|
|
|
|
# Verify that 'makeuniversal' is available in the PATH.
|
|
type -p makeuniversal >/dev/null
|
|
|
|
# Download, verify, and extract sources.
|
|
curl -OL https://download.qt.io/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz
|
|
shasum -a 256 qt-everywhere-src-5.15.2.tar.xz | grep -q 3a530d1b243b5dec00bc54937455471aaa3e56849d2593edb8ded07228202240
|
|
tar xjf qt-everywhere-src-5.15.2.tar.xz
|
|
|
|
# Build the x86_64 variant.
|
|
mkdir qt-5.15.2-x86_64
|
|
cd qt-5.15.2-x86_64
|
|
../qt-everywhere-src-5.15.2/configure \
|
|
--prefix=/ \
|
|
-platform macx-clang \
|
|
-device-option QMAKE_APPLE_DEVICE_ARCHS=x86_64 \
|
|
-device-option QMAKE_MACOSX_DEPLOYMENT_TARGET=10.13 \
|
|
-release \
|
|
-opensource -confirm-license \
|
|
-gui \
|
|
-widgets \
|
|
-no-gif \
|
|
-no-icu \
|
|
-no-pch \
|
|
-no-angle \
|
|
-no-opengl \
|
|
-no-dbus \
|
|
-no-harfbuzz \
|
|
-skip declarative \
|
|
-skip multimedia \
|
|
-skip qtcanvas3d \
|
|
-skip qtcharts \
|
|
-skip qtconnectivity \
|
|
-skip qtdeclarative \
|
|
-skip qtgamepad \
|
|
-skip qtlocation \
|
|
-skip qtmultimedia \
|
|
-skip qtnetworkauth \
|
|
-skip qtpurchasing \
|
|
-skip qtremoteobjects \
|
|
-skip qtscript \
|
|
-skip qtsensors \
|
|
-skip qtserialbus \
|
|
-skip qtserialport \
|
|
-skip qtsvg \
|
|
-skip qtwebchannel \
|
|
-skip qtwebengine \
|
|
-skip qtwebsockets \
|
|
-skip qtxmlpatterns \
|
|
-nomake examples \
|
|
-nomake tests \
|
|
-nomake tools
|
|
make -j 8
|
|
cd ..
|
|
|
|
# Build the arm64 variant.
|
|
mkdir qt-5.15.2-arm64
|
|
cd qt-5.15.2-arm64
|
|
../qt-everywhere-src-5.15.2/configure \
|
|
--prefix=/ \
|
|
-platform macx-clang \
|
|
-device-option QMAKE_APPLE_DEVICE_ARCHS=arm64 \
|
|
-device-option QMAKE_MACOSX_DEPLOYMENT_TARGET=10.13 \
|
|
-release \
|
|
-opensource -confirm-license \
|
|
-gui \
|
|
-widgets \
|
|
-no-gif \
|
|
-no-icu \
|
|
-no-pch \
|
|
-no-angle \
|
|
-no-opengl \
|
|
-no-dbus \
|
|
-no-harfbuzz \
|
|
-skip declarative \
|
|
-skip multimedia \
|
|
-skip qtcanvas3d \
|
|
-skip qtcharts \
|
|
-skip qtconnectivity \
|
|
-skip qtdeclarative \
|
|
-skip qtgamepad \
|
|
-skip qtlocation \
|
|
-skip qtmultimedia \
|
|
-skip qtnetworkauth \
|
|
-skip qtpurchasing \
|
|
-skip qtremoteobjects \
|
|
-skip qtscript \
|
|
-skip qtsensors \
|
|
-skip qtserialbus \
|
|
-skip qtserialport \
|
|
-skip qtsvg \
|
|
-skip qtwebchannel \
|
|
-skip qtwebengine \
|
|
-skip qtwebsockets \
|
|
-skip qtxmlpatterns \
|
|
-nomake examples \
|
|
-nomake tests \
|
|
-nomake tools
|
|
make -j 8 -k
|
|
cd ..
|
|
|
|
# Combine the two builds into universal binaries.
|
|
makeuniversal qt-5.15.2-univ qt-5.15.2-x86_64 qt-5.15.2-arm64
|
|
cd qt-5.15.2-univ
|
|
make install -j 8 INSTALL_ROOT=/tmp/qt-5.15.2-macosx10.13-x86_64-arm64
|
|
cd ..
|
|
|
|
# Create the final tarball containing universal binaries.
|
|
tar cjf qt-5.15.2-macosx10.13-x86_64-arm64.tar.xz -C /tmp qt-5.15.2-macosx10.13-x86_64-arm64
|