Add universal libusb binaries to macOS

Brew does not support universal binaries, but provides separate
amd64 and arm64 packages. We need to add arm64 binaries for libus,
so that the universal builds work also for QDB.

Use brew to fetch both architecture packages and use them to
create universal libs for the libusb.

Remove from macOS 10.14, add to macOS 12 arm.

Task-number: QTBUG-107457
Pick-to: 6.2
Change-Id: If19fd6d303a20d8742c88ea11d5b30cc55f45d6b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
Samuli Piippo
2022-11-15 14:15:27 +02:00
parent ab0b005a57
commit 2b8f50a2d1
2 changed files with 22 additions and 0 deletions

View File

@@ -47,3 +47,25 @@ brew install libusb
read -r -a arr <<< $(brew list --versions libusb)
version=${arr[1]}
echo "libusb = $version" >> ~/versions.txt
mkdir /tmp/arm64/
mkdir /tmp/amd64/
case $(sw_vers -productVersion) in
11*) codename=big_sur;;
12*) codename=monterey;;
13*) codename=ventura;;
esac
brew fetch --bottle-tag=arm64_${codename} libusb
brew fetch --bottle-tag=${codename} libusb
tar xf $(brew --cache --bottle-tag=arm64_${codename} libusb) -C /tmp/arm64/
tar xf $(brew --cache --bottle-tag=${codename} libusb) -C /tmp/amd64
for f in /tmp/arm64/libusb/$version/lib/* ; do
if lipo -info $f >/dev/null 2>&1; then
file=$(basename $f)
lipo -create -output $(brew --cellar)/libusb/$version/lib/$file \
/tmp/arm64/libusb/$version/lib/$file \
/tmp/amd64/libusb/$version/lib/$file
fi
done