macOS deploy CI improvements

This commit is contained in:
Jonas Kvinge 2021-08-19 22:15:30 +02:00
parent 679b468618
commit 249a5bf3b7
2 changed files with 37 additions and 58 deletions

View File

@ -1125,12 +1125,7 @@ jobs:
create-dmg
taglib
libplist
gnome-common
gdk-pixbuf
intltool
autoconf
automake
gtk-doc
- name: Install Sparkle
run: brew install --cask sparkle
@ -1145,22 +1140,11 @@ jobs:
env:
PERL_MM_USE_DEFAULT: 1
run: |
sudo cpan install XML::Parser
wget https://downloads.sourceforge.net/project/gtkpod/libgpod/libgpod-0.8/libgpod-0.8.3.tar.bz2
tar -xvf libgpod-0.8.3.tar.bz2
cd libgpod-0.8.3
wget https://raw.githubusercontent.com/macports/macports-ports/master/multimedia/libgpod/files/autogen.sh
wget https://raw.githubusercontent.com/macports/macports-ports/master/multimedia/libgpod/files/patch-tools-generic-callout.c.diff
wget http://files.strawberrymusicplayer.org/patches/libgpod-libplist.patch
patch -p0 < patch-tools-generic-callout.c.diff
patch -p1 < libgpod-libplist.patch
chmod u+x autogen.sh
./autogen.sh
./configure --disable-more-warnings \
--disable-silent-rules \
--disable-udev \
--disable-pygobject \
--with-python=no
git clone https://github.com/strawberrymusicplayer/strawberry-libgpod
cd strawberry-libgpod
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j 4
sudo make install
@ -1185,6 +1169,24 @@ jobs:
working-directory: build
shell: bash
run: make install
- name: Manually copy files not handled by macdeployqt
working-directory: build
shell: bash
run: |
mkdir -p strawberry.app/Contents/Frameworks/
cp -v /usr/local/lib/libbrotlicommon.1.dylib strawberry.app/Contents/Frameworks/
cp -v /usr/local/opt/icu4c/lib/libicudata.69.dylib strawberry.app/Contents/Frameworks/
cp -v /usr/local/lib/libgpod.dylib strawberry.app/Contents/Frameworks/
install_name_tool -change "@rpath/libgpod.dylib" "@loader_path/../Frameworks/libgpod.dylib" strawberry.app/Contents/MacOS/strawberry
# Sparkle
mkdir -p strawberry.app/Contents/Frameworks/Sparkle.framework/Versions/A
cp -v /usr/local/opt/sparkle/Sparkle.framework/Sparkle strawberry.app/Contents/Frameworks/Sparkle.framework/
cp -v /usr/local/opt/sparkle/Sparkle.framework/Versions/A/Sparkle strawberry.app/Contents/Frameworks/Sparkle.framework/Versions/A/
cp -v -R /usr/local/opt/sparkle/Sparkle.framework/Versions/Current strawberry.app/Contents/Frameworks/Sparkle.framework/Versions/
- name: Create DMG
working-directory: build
shell: bash
run: make dmg
build-macos-qt6:
name: Build macOS Qt 6
@ -1218,12 +1220,7 @@ jobs:
create-dmg
taglib
libplist
gnome-common
gdk-pixbuf
intltool
autoconf
automake
gtk-doc
- name: Install Sparkle
run: brew install --cask sparkle
@ -1238,22 +1235,11 @@ jobs:
env:
PERL_MM_USE_DEFAULT: 1
run: |
sudo cpan install XML::Parser
wget https://downloads.sourceforge.net/project/gtkpod/libgpod/libgpod-0.8/libgpod-0.8.3.tar.bz2
tar -xvf libgpod-0.8.3.tar.bz2
cd libgpod-0.8.3
wget https://raw.githubusercontent.com/macports/macports-ports/master/multimedia/libgpod/files/autogen.sh
wget https://raw.githubusercontent.com/macports/macports-ports/master/multimedia/libgpod/files/patch-tools-generic-callout.c.diff
wget http://files.strawberrymusicplayer.org/patches/libgpod-libplist.patch
patch -p0 < patch-tools-generic-callout.c.diff
patch -p1 < libgpod-libplist.patch
chmod u+x autogen.sh
./autogen.sh
./configure --disable-more-warnings \
--disable-silent-rules \
--disable-udev \
--disable-pygobject \
--with-python=no
git clone https://github.com/strawberrymusicplayer/strawberry-libgpod
cd strawberry-libgpod
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j 4
sudo make install
@ -1282,16 +1268,17 @@ jobs:
working-directory: build
shell: bash
run: make install
- name: Manually copy libbrotlicommon.1.dylib
- name: Manually copy files not handled by macdeployqt
working-directory: build
shell: bash
run: |
mkdir -p strawberry.app/Contents/Frameworks/
cp /usr/local/lib/libbrotlicommon.1.dylib strawberry.app/Contents/Frameworks/
- name: Copy sparkle
working-directory: build
shell: bash
run: make copy_sparkle
cp -v /usr/local/lib/libbrotlicommon.1.dylib strawberry.app/Contents/Frameworks/
# Sparkle
mkdir -p strawberry.app/Contents/Frameworks/Sparkle.framework/Versions/A
cp -v /usr/local/opt/sparkle/Sparkle.framework/Sparkle strawberry.app/Contents/Frameworks/Sparkle.framework/
cp -v /usr/local/opt/sparkle/Sparkle.framework/Versions/A/Sparkle strawberry.app/Contents/Frameworks/Sparkle.framework/Versions/A/
cp -v -R /usr/local/opt/sparkle/Sparkle.framework/Versions/Current strawberry.app/Contents/Frameworks/Sparkle.framework/Versions/
- name: Create DMG
working-directory: build
shell: bash

View File

@ -13,22 +13,14 @@ else()
message(WARNING "Missing create-dmg executable.")
endif()
# Workaround for Sparkle
add_custom_target(copy_sparkle
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/strawberry.app/Contents/Frameworks/
COMMAND cp -r /usr/local/opt/sparkle/Sparkle.framework ${CMAKE_BINARY_DIR}/strawberry.app/Contents/Frameworks/
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
DEPENDS strawberry strawberry-tagreader
)
if(MACDEPLOYQT_EXECUTABLE)
add_custom_target(copy_gstreamer_plugins
#COMMAND ${CMAKE_SOURCE_DIR}/dist/macos/macgstcopy.sh strawberry.app
)
add_custom_target(deploy
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/strawberry.app/Contents/{Frameworks,Resources}
COMMAND cp ${CMAKE_SOURCE_DIR}/dist/macos/Info.plist ${CMAKE_BINARY_DIR}/strawberry.app/Contents/
COMMAND cp ${CMAKE_SOURCE_DIR}/dist/macos/strawberry.icns ${CMAKE_BINARY_DIR}/strawberry.app/Contents/Resources/
COMMAND cp -v ${CMAKE_SOURCE_DIR}/dist/macos/Info.plist ${CMAKE_BINARY_DIR}/strawberry.app/Contents/
COMMAND cp -v ${CMAKE_SOURCE_DIR}/dist/macos/strawberry.icns ${CMAKE_BINARY_DIR}/strawberry.app/Contents/Resources/
COMMAND ${MACDEPLOYQT_EXECUTABLE} strawberry.app -verbose=3
-executable=${CMAKE_BINARY_DIR}/strawberry.app/Contents/PlugIns/strawberry-tagreader
-executable=${CMAKE_BINARY_DIR}/strawberry.app/Contents/PlugIns/gio-modules/libgiognutls.so