Run macdeployqt on the correct platform for each build

This commit is contained in:
Joseph Donofry 2022-10-24 19:28:52 -04:00
parent e184f6372d
commit 9ed87ef3f4
No known key found for this signature in database
GPG key ID: E8A1D78EF044B0CB
5 changed files with 35 additions and 83 deletions

32
.ci/macos/build.sh Executable file
View file

@ -0,0 +1,32 @@
#!/usr/bin/env sh
set -u
# unused
#TAG=$(git tag -l --points-at HEAD)
# Add Qt binaries to path
PATH="$(brew --prefix qt5):${PATH}"
export PATH
CMAKE_PREFIX_PATH="$(brew --prefix qt5)"
export CMAKE_PREFIX_PATH
cmake -GNinja -S. -Bbuild \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=.deps/usr \
-DHUNTER_ROOT="../.hunter" \
-DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF \
-DCMAKE_BUILD_TYPE=RelWithDebInfo -DHUNTER_CONFIGURATION_TYPES=RelWithDebInfo \
-DUSE_BUNDLED_OPENSSL=ON \
-DUSE_BUNDLED_BOOST=ON \
-DCI_BUILD=ON \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.15
cmake --build build
( cd build || exit
git clone https://github.com/Nheko-Reborn/qt-jdenticon.git
cd qt-jdenticon && qmake && make -j 4
cp libqtjdenticon.dylib ../nheko.app/Contents/MacOS
)
macdeployqt nheko.app -always-overwrite -qmldir=../resources/qml/

View file

@ -1,34 +0,0 @@
#!/usr/bin/env sh
set -eux
# unused
#TAG=$(git tag -l --points-at HEAD)
# Add Qt binaries to path
PATH=/usr/local/opt/qt@5/bin/:${PATH}
( cd build
# macdeployqt does not copy symlinks over.
# this specifically addresses icu4c issues but nothing else.
ICU_LIB="$(brew --prefix icu4c)/lib"
export ICU_LIB
mkdir -p nheko.app/Contents/Frameworks
find "${ICU_LIB}" -type l -name "*.dylib" -exec cp -a -n {} nheko.app/Contents/Frameworks/ \; || true
macdeployqt nheko.app -dmg -always-overwrite -qmldir=../resources/qml/
user=$(id -nu)
chown "${user}" nheko.dmg
mv nheko.dmg ..
)
dmgbuild -s ./.ci/macos/settings.json "Nheko" nheko.dmg
VERSION=${CI_COMMIT_SHORT_SHA}
if [ -n "$VERSION" ]; then
mv nheko.dmg "nheko-${VERSION}.dmg"
mkdir artifacts
cp "nheko-${VERSION}.dmg" artifacts/
fi

View file

@ -7,6 +7,7 @@ set -u
# Add Qt binaries to path # Add Qt binaries to path
PATH="/usr/local/opt/qt@5/bin/:${PATH}" PATH="/usr/local/opt/qt@5/bin/:${PATH}"
export PATH
security unlock-keychain -p "${RUNNER_USER_PW}" login.keychain security unlock-keychain -p "${RUNNER_USER_PW}" login.keychain
@ -31,22 +32,6 @@ if [ ! -d "build/nheko.app" ]; then
exit 1 exit 1
fi fi
( cd build || exit
# macdeployqt does not copy symlinks over.
# this specifically addresses icu4c issues but nothing else.
# We might not even need this any longer...
# ICU_LIB="$(brew --prefix icu4c)/lib"
# export ICU_LIB
# mkdir -p nheko.app/Contents/Frameworks
# find "${ICU_LIB}" -type l -name "*.dylib" -exec cp -a -n {} nheko.app/Contents/Frameworks/ \; || true
#macdeployqt nheko.app -dmg -always-overwrite -qmldir=../resources/qml/ -sign-for-notarization="${APPLE_DEV_IDENTITY}"
macdeployqt nheko.app -always-overwrite -qmldir=../resources/qml/
# user=$(id -nu)
# chown "${user}" nheko.dmg
)
echo "[INFO] Signing app contents" echo "[INFO] Signing app contents"
find "build/nheko.app/Contents"|while read -r fname; do find "build/nheko.app/Contents"|while read -r fname; do
if [ -f "$fname" ]; then if [ -f "$fname" ]; then

View file

@ -9,24 +9,7 @@ task:
- brew bundle --file .ci/macos/Brewfile - brew bundle --file .ci/macos/Brewfile
build_script: build_script:
- export PATH="$(brew --prefix qt5)/bin/:${PATH}" - export PATH="$(brew --prefix qt5)/bin/:${PATH}"
- export CMAKE_PREFIX_PATH="$(brew --prefix qt5)" - ./.ci/macos/build.sh
- echo "$(brew --prefix qt5)"
- cmake -GNinja -S. -Bbuild
-DCMAKE_BUILD_TYPE=RelWithDebInfo
-DCMAKE_INSTALL_PREFIX=.deps/usr
-DHUNTER_ROOT="../.hunter"
-DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF
-DCMAKE_BUILD_TYPE=RelWithDebInfo -DHUNTER_CONFIGURATION_TYPES=RelWithDebInfo
-DUSE_BUNDLED_OPENSSL=ON
-DQT_PATH="$(brew --prefix qt5)",
-DQt5_DIR:PATH="$(brew --prefix qt5)/lib/cmake/Qt5",
-DQt5MacExtras_DIR:PATH="$(brew --prefix qt5)/lib/cmake/Qt5MacExtras",
-DQt5DBus_DIR:PATH="$(brew --prefix qt5)/lib/cmake/Qt5DBus",
-DQt5QuickCompiler_DIR:PATH="$(brew --prefix qt5)/lib/cmake/Qt5QuickCompiler",
-DCI_BUILD=ON
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.15
- cmake --build build
- (cd build && git clone https://github.com/Nheko-Reborn/qt-jdenticon.git && cd qt-jdenticon && qmake && make -j 4 && cp libqtjdenticon.dylib ../nheko.app/Contents/MacOS)
zip_script: zip_script:
- zip -r build/nheko.zip build/nheko.app - zip -r build/nheko.zip build/nheko.app
gitlab_script: gitlab_script:

View file

@ -118,20 +118,7 @@ build-macos:
before_script: before_script:
- rm -rf ../.hunter && mv .hunter ../.hunter || true - rm -rf ../.hunter && mv .hunter ../.hunter || true
script: script:
- export PATH=/usr/local/opt/qt@5/bin/:${PATH} - ./.ci/macos/build.sh
- export CMAKE_PREFIX_PATH=/usr/local/opt/qt@5
- cmake -GNinja -H. -Bbuild
-DCMAKE_BUILD_TYPE=RelWithDebInfo
-DCMAKE_INSTALL_PREFIX=.deps/usr
-DHUNTER_ROOT="../.hunter"
-DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF
-DCMAKE_BUILD_TYPE=RelWithDebInfo -DHUNTER_CONFIGURATION_TYPES=RelWithDebInfo
-DUSE_BUNDLED_OPENSSL=ON
-DUSE_BUNDLED_BOOST=ON
-DCI_BUILD=ON
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.15
- cmake --build build
- (cd build && git clone https://github.com/Nheko-Reborn/qt-jdenticon.git && cd qt-jdenticon && qmake && make -j 4 && cp libqtjdenticon.dylib ../nheko.app/Contents/MacOS)
after_script: after_script:
- mv ../.hunter .hunter - mv ../.hunter .hunter
rules: rules:
@ -154,7 +141,6 @@ codesign-macos:
variables: variables:
PLAT: "intel" PLAT: "intel"
before_script: before_script:
- 'brew upgrade qt@5'
- pip3 install dmgbuild - pip3 install dmgbuild
script: script:
- export PATH=/usr/local/opt/qt@5/bin/:${PATH} - export PATH=/usr/local/opt/qt@5/bin/:${PATH}