Last active
December 19, 2024 21:32
-
-
Save wdouglascampbell/00ef0863cde09866e975e900bf27d307 to your computer and use it in GitHub Desktop.
Instructions to Build OpenConnect-GUI Universal Package for macOS 12+
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Summary of Steps | |
1. Build aarch64 package binary using UTM VM running macOS 12 Monterey. | |
2. Build x86_64 package binary using Intel-based Mac running macOS 12 Monterey. | |
3. Copy x86_64 package binary to UTM VM running macOS 12 Monterey. | |
4. Create universal package binary from aarch64 package binary and x86_64 package binary. | |
Build aarch64 Package | |
===================== | |
Prepare VM | |
---------- | |
Using a Mac with an Apple silicon processor install UTM (https://mac.getutm.app) | |
Download the universal IPSW file for macOS 12.6 (https://ipsw.me/install/MacBookPro17,1/21G115) | |
Create a new virtual machine in UTM running macOS 12.6 using download IPSW file | |
Note: Set virtual disk size to 110 GB. | |
Install Apple security updates (DO NOT upgrade the OS!) | |
Install Xcode | |
------------- | |
Download Xcode 14.2 from https://xcodereleases.com | |
Extract it by double-clicking on downloaded file (Xcode_14.2.xip) | |
Delete Xcode_14.2.xip to free up space | |
Move extracted Xcode package binary to /Applications folder | |
Double-click Xcode icon in Applications folder, accept the license, etc | |
Setup Build Environment | |
----------------------- | |
: create working directory | |
mkdir -p ~/Downloads/build-openconnect-gui | |
: install Homebrew | |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | |
: adjust gnutls homebrew formula so that it is not configured to look in a specific | |
: default trust store file causing the macOS access keychain to be used instead. | |
/opt/homebrew/bin/brew install gnutls | |
cp /opt/homebrew/opt/gnutls/.brew/gnutls.rb ~/Downloads/build-openconnect-gui/ | |
sed -I '' -e '/--with-default-trust-store-file/d' ~/Downloads/build-openconnect-gui/gnutls.rb | |
/opt/homebrew/bin/brew uninstall gnutls | |
: install modified gnutls formula | |
/opt/homebrew/bin/brew install --build-from-source --formula ~/Downloads/build-openconnect-gui/gnutls.rb gnutls | |
: check if the xcode gui is selected for building applications | |
xcode-select -p | |
: switch the path if /Applications/Xcode.app/Contents/Developer is not returned | |
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer | |
: install remaining dependencies using homebrew | |
/opt/homebrew/bin/brew install cmake openconnect qt@6 spdlog vulkan-headers pkgconfig | |
Get OpenConnect-GUI Source Code for v1.6.2 | |
------------------------------------------ | |
cd ~/Downloads/build-openconnect-gui | |
git clone https://gitlab.com/openconnect/openconnect-gui.git openconnect-gui-aarch64 | |
cd openconnect-gui-aarch64 | |
git tag | |
git checkout tags/v1.6.2 | |
: modify deployment target from 10.12 to 12.0 | |
sed -I '' -e 's/CMAKE_OSX_DEPLOYMENT_TARGET "10.12"/CMAKE_OSX_DEPLOYMENT_TARGET "12.0"/' ~/Downloads/build-openconnect-gui/openconnect-gui-aarch64/CMakeLists.txt | |
Build Package | |
------------- | |
/opt/homebrew/bin/cmake . | |
/opt/homebrew/bin/cmake --build . | |
: deploy Qt frameworks and libraries to app bundle | |
/opt/homebrew/opt/qt/bin/macdeployqt ./bin/OpenConnect-GUI.app | |
cp -R /opt/homebrew/Cellar/qt/6.7.3/lib/QtDBus.framework ./bin/OpenConnect-GUI.app/Contents/Frameworks | |
cp /opt/homebrew/opt/dbus/lib/libdbus-1.3.dylib ./bin/OpenConnect-GUI.app/Contents/Frameworks | |
install_name_tool -change /opt/homebrew/opt/dbus/lib/libdbus-1.3.dylib @executable_path/../Frameworks/libdbus-1.3.dylib ./bin/OpenConnect-GUI.app/Contents/Frameworks/QtDBus.framework/Versions/A/QtDBus | |
: re-sign code with adhoc signature | |
codesign --deep --force -s - bin/OpenConnect-GUI.app | |
Build x86_64 Package | |
==================== | |
Install macOS 12.6 on an Intel-based Mac | |
Install Apple security updates (DO NOT upgrade the OS!) | |
Install Xcode | |
------------- | |
Download Xcode 14.2 from https://xcodereleases.com | |
Extract it by double-clicking on downloaded file (Xcode_14.2.xip) | |
Delete Xcode_14.2.xip to free up space | |
Move extracted Xcode package binary to /Applications folder | |
Double-click Xcode icon in Applications folder, accept the license, etc | |
Setup Build Environment | |
----------------------- | |
: create working directory | |
mkdir -p ~/Downloads/build-openconnect-gui | |
: install Homebrew | |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | |
: adjust gnutls homebrew formula so that it is not configured to look in a specific | |
: default trust store file causing the macOS access keychain to be used instead. | |
/usr/local/bin/brew install gnutls | |
cp /usr/local/opt/gnutls/.brew/gnutls.rb ~/Downloads/build-openconnect-gui/ | |
sed -I '' -e '/--with-default-trust-store-file/d' ~/Downloads/build-openconnect-gui/gnutls.rb | |
/usr/local/bin/brew uninstall gnutls | |
: install modified gnutls formula | |
/usr/local/bin/brew install --build-from-source --formula ~/Downloads/build-openconnect-gui/gnutls.rb gnutls | |
: install modified gnutls formula | |
/usr/local/bin/brew install --build-from-source --formula ~/Downloads/build-openconnect-gui/gnutls.rb gnutls | |
: check if the xcode gui is selected for building applications | |
xcode-select -p | |
: switch the path if /Applications/Xcode.app/Contents/Developer is not returned | |
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer | |
: install remaining dependencies using homebrew | |
/usr/local/bin/brew install cmake openconnect qt@6 spdlog vulkan-headers pkgconfig | |
Get OpenConnect-GUI Source Code for v1.6.2 | |
------------------------------------------ | |
cd ~/Downloads/build-openconnect-gui | |
git clone https://gitlab.com/openconnect/openconnect-gui.git openconnect-gui-x86_64 | |
cd openconnect-gui-aarch64 | |
git tag | |
git checkout tags/v1.6.2 | |
: modify deployment target from 10.12 to 12.0 | |
sed -I '' -e 's/CMAKE_OSX_DEPLOYMENT_TARGET "10.12"/CMAKE_OSX_DEPLOYMENT_TARGET "12.0"/' ~/Downloads/build-openconnect-gui/openconnect-gui-x86_64/CMakeLists.txt | |
Build Package | |
------------- | |
/usr/local/bin/cmake . | |
/usr/local/bin/cmake --build . | |
: deploy Qt frameworks and libraries to app bundle | |
/usr/local/opt/qt/bin/macdeployqt ./bin/OpenConnect-GUI.app | |
cp -R /usr/local/Cellar/qt/6.7.3/lib/QtDBus.framework ./bin/OpenConnect-GUI.app/Contents/Frameworks | |
cp /usr/local/opt/dbus/lib/libdbus-1.3.dylib ./bin/OpenConnect-GUI.app/Contents/Frameworks | |
install_name_tool -change /usr/local/opt/dbus/lib/libdbus-1.3.dylib @executable_path/../Frameworks/libdbus-1.3.dylib ./bin/OpenConnect-GUI.app/Contents/Frameworks/QtDBus.framework/Versions/A/QtDBus | |
: re-sign code with adhoc signature | |
codesign --deep --force -s - bin/OpenConnect-GUI.app | |
Copy OpenConnect-GUI x86_64 package binary to UTM VM running macOS 12 Monterey | |
========================================================================== | |
: create directory to hold OpenConnect-GUI x86_64 package binary | |
mkdir -p ~/Downloads/build-openconnect-gui/openconnect-gui-x86_64/bin | |
: move OpenConnect-GUI x86_64 package binary to ~/Downloads/build-openconnect-gui/openconnect-gui-x86_64/bin/ | |
Create Universal Package | |
======================== | |
: create base for universal package using aarch64 package | |
mkdir -p ~/Downloads/build-openconnect-gui/openconnect-gui-universal/bin | |
cd ~/Downloads/build-openconnect-gui | |
cp -pR openconnect-gui-aarch64/bin/OpenConnect-GUI.app openconnect-gui-universal/bin/ | |
: create universal version of main binary | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/MacOS/OpenConnect-GUI openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/MacOS/OpenConnect-GUI -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/MacOS/OpenConnect-GUI | |
: create universal versions of frameworks included in package | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/QtCore.framework/Versions/A/QtCore openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/QtCore.framework/Versions/A/QtCore -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/QtCore.framework/Versions/A/QtCore | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/QtDBus.framework/Versions/A/QtDBus openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/QtDBus.framework/Versions/A/QtDBus -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/QtDBus.framework/Versions/A/QtDBus | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/QtGui.framework/Versions/A/QtGui openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/QtGui.framework/Versions/A/QtGui -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/QtGui.framework/Versions/A/QtGui | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/QtNetwork.framework/Versions/A/QtNetwork openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/QtNetwork.framework/Versions/A/QtNetwork -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/QtNetwork.framework/Versions/A/QtNetwork | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/QtStateMachine.framework/Versions/A/QtStateMachine openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/QtStateMachine.framework/Versions/A/QtStateMachine -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/QtStateMachine.framework/Versions/A/QtStateMachine | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/QtWidgets.framework/Versions/A/QtWidgets openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/QtWidgets.framework/Versions/A/QtWidgets -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/QtWidgets.framework/Versions/A/QtWidgets | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libb2.1.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libb2.1.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libb2.1.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libbrotlicommon.1.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libbrotlicommon.1.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libbrotlicommon.1.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libbrotlidec.1.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libbrotlidec.1.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libbrotlidec.1.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libdbus-1.3.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libdbus-1.3.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libdbus-1.3.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libdouble-conversion.3.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libdouble-conversion.3.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libdouble-conversion.3.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libfmt.11.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libfmt.11.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libfmt.11.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libfreetype.6.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libfreetype.6.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libfreetype.6.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libgio-2.0.0.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libgio-2.0.0.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libgio-2.0.0.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libglib-2.0.0.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libglib-2.0.0.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libglib-2.0.0.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libgmodule-2.0.0.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libgmodule-2.0.0.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libgmodule-2.0.0.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libgmp.10.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libgmp.10.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libgmp.10.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libgnutls.30.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libgnutls.30.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libgnutls.30.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libgobject-2.0.0.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libgobject-2.0.0.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libgobject-2.0.0.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libgraphite2.3.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libgraphite2.3.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libgraphite2.3.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libgthread-2.0.0.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libgthread-2.0.0.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libgthread-2.0.0.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libharfbuzz.0.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libharfbuzz.0.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libharfbuzz.0.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libhogweed.6.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libhogweed.6.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libhogweed.6.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libicudata.76.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libicudata.76.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libicudata.76.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libicui18n.76.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libicui18n.76.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libicui18n.76.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libicuuc.76.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libicuuc.76.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libicuuc.76.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libidn2.0.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libidn2.0.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libidn2.0.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libintl.8.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libintl.8.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libintl.8.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libjasper.7.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libjasper.7.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libjasper.7.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libjpeg.8.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libjpeg.8.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libjpeg.8.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/liblcms2.2.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/liblcms2.2.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/liblcms2.2.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/liblzma.5.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/liblzma.5.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/liblzma.5.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libmd4c.0.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libmd4c.0.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libmd4c.0.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libmng.2.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libmng.2.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libmng.2.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libnettle.8.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libnettle.8.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libnettle.8.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libopenconnect.5.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libopenconnect.5.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libopenconnect.5.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libp11-kit.0.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libp11-kit.0.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libp11-kit.0.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libpcre2-16.0.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libpcre2-16.0.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libpcre2-16.0.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libpcre2-8.0.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libpcre2-8.0.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libpcre2-8.0.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libpng16.16.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libpng16.16.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libpng16.16.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libsharpyuv.0.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libsharpyuv.0.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libsharpyuv.0.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libspdlog.1.15.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libspdlog.1.15.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libspdlog.1.15.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libstoken.1.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libstoken.1.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libstoken.1.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libtasn1.6.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libtasn1.6.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libtasn1.6.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libtiff.6.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libtiff.6.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libtiff.6.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libunistring.5.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libunistring.5.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libunistring.5.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libwebp.7.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libwebp.7.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libwebp.7.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libwebpdemux.2.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libwebpdemux.2.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libwebpdemux.2.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libwebpmux.3.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libwebpmux.3.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libwebpmux.3.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Frameworks/libzstd.1.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Frameworks/libzstd.1.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Frameworks/libzstd.1.dylib | |
: create universal version of package plugins iconengines | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/iconengines/libqsvgicon.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/iconengines/libqsvgicon.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/iconengines/libqsvgicon.dylib | |
: create universal version of package plugins imageformats | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqgif.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqgif.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqgif.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqicns.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqicns.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqicns.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqico.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqico.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqico.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqjp2.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqjp2.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqjp2.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqjpeg.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqjpeg.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqjpeg.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqmacheif.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqmacheif.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqmacheif.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqmng.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqmng.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqmng.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqpdf.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqpdf.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqpdf.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqtga.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqtga.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqtga.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqtiff.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqtiff.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqtiff.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqwbmp.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqwbmp.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqwbmp.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqwebp.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqwebp.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/imageformats/libqwebp.dylib | |
: create universal version of package plugins networkinformation | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/networkinformation/libqglib.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/networkinformation/libqglib.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/networkinformation/libqglib.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/networkinformation/libqscnetworkreachability.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/networkinformation/libqscnetworkreachability.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/networkinformation/libqscnetworkreachability.dylib | |
: create universal version of package plugins platforminputcontexts | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/platforminputcontexts/libqtvirtualkeyboardplugin.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/platforminputcontexts/libqtvirtualkeyboardplugin.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/platforminputcontexts/libqtvirtualkeyboardplugin.dylib | |
: create universal version of package plugins platforms | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/platforms/libqcocoa.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/platforms/libqcocoa.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/platforms/libqcocoa.dylib | |
: create universal version of package plugins styles | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/styles/libqmacstyle.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/styles/libqmacstyle.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/styles/libqmacstyle.dylib | |
: create universal version of package plugins tls | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/tls/libqcertonlybackend.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/tls/libqcertonlybackend.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/tls/libqcertonlybackend.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/tls/libqopensslbackend.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/tls/libqopensslbackend.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/tls/libqopensslbackend.dylib | |
lipo -create openconnect-gui-x86_64/bin/OpenConnect-GUI.app/Contents/Plugins/tls/libqsecuretransportbackend.dylib openconnect-gui-aarch64/bin/OpenConnect-GUI.app/Contents/Plugins/tls/libqsecuretransportbackend.dylib -output openconnect-gui-universal/bin/OpenConnect-GUI.app/Contents/Plugins/tls/libqsecuretransportbackend.dylib | |
: re-sign code with adhoc signature | |
codesign --deep --force -s - openconnect-gui-universal/bin/OpenConnect-GUI.app | |
The package ~/Downloads/build-openconnect-gui/openconnect-gui-universal/bin/OpenConnect-GUI.app can be run on both Intel and Apple silicon Macs running macOS 12 and above. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment