CI: Add macOS
This commit is contained in:
parent
5b7087cc9e
commit
a647f63bb0
134
.github/workflows/ccpp.yml
vendored
134
.github/workflows/ccpp.yml
vendored
@ -2038,3 +2038,137 @@ jobs:
|
|||||||
cmake --build . --config Debug --parallel 4
|
cmake --build . --config Debug --parallel 4
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf build
|
rm -rf build
|
||||||
|
|
||||||
|
|
||||||
|
build-macos:
|
||||||
|
name: Build macOS
|
||||||
|
runs-on: macos-10.15
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1.2.0
|
||||||
|
|
||||||
|
- name: Install packages
|
||||||
|
run: |
|
||||||
|
brew install pkg-config cmake ninja meson bison flex wget create-dmg gettext boost protobuf protobuf-c
|
||||||
|
brew install glib glib-openssl glib-utils glib-networking gdk-pixbuf gobject-introspection orc
|
||||||
|
brew install libffi openssl gnutls sqlite fftw libmtp libplist libsoup libxml2
|
||||||
|
brew install libogg libvorbis flac wavpack opus speex mpg123 lame twolame taglib chromaprint libbs2b libcdio libopenmpt faad2 faac fdk-aac musepack game-music-emu
|
||||||
|
brew install gstreamer
|
||||||
|
brew install qt6
|
||||||
|
|
||||||
|
- name: Use modified gstreamer plugin formulas
|
||||||
|
run: |
|
||||||
|
wget https://files.strawberrymusicplayer.org/patches/gst-plugins-base.rb
|
||||||
|
wget https://files.strawberrymusicplayer.org/patches/gst-plugins-good.rb
|
||||||
|
wget https://files.strawberrymusicplayer.org/patches/gst-plugins-bad.rb
|
||||||
|
wget https://files.strawberrymusicplayer.org/patches/gst-plugins-ugly.rb
|
||||||
|
mv gst-plugins-{base,good,bad,ugly}.rb /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/
|
||||||
|
|
||||||
|
- name: Build and install gst-plugins-base
|
||||||
|
run: brew install --build-from-source gst-plugins-base
|
||||||
|
|
||||||
|
- name: Build and install gst-plugins-good
|
||||||
|
run: brew install --build-from-source gst-plugins-good
|
||||||
|
|
||||||
|
- name: Build and install gst-plugins-bad
|
||||||
|
run: brew install --build-from-source gst-plugins-bad
|
||||||
|
|
||||||
|
- name: Build and install gst-plugins-ugly
|
||||||
|
run: brew install --build-from-source gst-plugins-ugly
|
||||||
|
|
||||||
|
- name: Build and install gst-libav
|
||||||
|
run: brew install gst-libav
|
||||||
|
|
||||||
|
- name: Build libgpod
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
PERL_MM_USE_DEFAULT: 1
|
||||||
|
run: |
|
||||||
|
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
|
||||||
|
|
||||||
|
- name: Remove problematic files
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
sudo rm -rf /usr/local/opt/qt6/share/qt/plugins/virtualkeyboard /usr/local/opt/qt6/share/qt/plugins/platforminputcontexts
|
||||||
|
sudo rm -f /usr/local/Cellar/qt/*/share/qt/plugins/imageformats/libqpdf.dylib
|
||||||
|
|
||||||
|
- name: Create Build Environment
|
||||||
|
shell: bash
|
||||||
|
run: cmake -E make_directory build
|
||||||
|
- name: Configure CMake
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
MACOSX_DEPLOYMENT_TARGET: 10.15
|
||||||
|
PKG_CONFIG_PATH: /usr/local/lib/pkgconfig
|
||||||
|
GIO_EXTRA_MODULES: /usr/local/lib/gio/modules
|
||||||
|
GST_PLUGIN_SCANNER: /usr/local/opt/gstreamer/libexec/gstreamer-1.0/gst-plugin-scanner
|
||||||
|
GST_PLUGIN_PATH: /usr/local/lib/gstreamer-1.0
|
||||||
|
working-directory: build
|
||||||
|
run: cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_WITH_QT6=ON -DBUILD_WERROR=OFF -DUSE_BUNDLE=ON -DCMAKE_PREFIX_PATH=/usr/local/opt/qt6/lib/cmake
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
working-directory: build
|
||||||
|
shell: bash
|
||||||
|
run: cmake --build . --config Release --parallel 4
|
||||||
|
|
||||||
|
- name: Install
|
||||||
|
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 /usr/local/lib/libsoup-3.0.0.dylib strawberry.app/Contents/Frameworks/
|
||||||
|
|
||||||
|
- name: Deploy
|
||||||
|
working-directory: build
|
||||||
|
shell: bash
|
||||||
|
run: make deploy
|
||||||
|
|
||||||
|
- name: Deploy check
|
||||||
|
working-directory: build
|
||||||
|
shell: bash
|
||||||
|
run: make deploycheck
|
||||||
|
|
||||||
|
- name: Create DMG
|
||||||
|
working-directory: build
|
||||||
|
shell: bash
|
||||||
|
run: make dmg
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: upload-macos
|
||||||
|
path: build/strawberry-*.dmg
|
||||||
|
|
||||||
|
|
||||||
|
upload-macos:
|
||||||
|
name: Upload macOS DMG
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: github.ref == 'refs/heads/master'
|
||||||
|
needs:
|
||||||
|
- build-macos
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1.2.0
|
||||||
|
- uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
path: uploads
|
||||||
|
- name: Install SSH keys
|
||||||
|
uses: shimataro/ssh-key-action@v2
|
||||||
|
with:
|
||||||
|
known_hosts: ${{ secrets.KNOWN_HOSTS2 }}
|
||||||
|
key: ${{ secrets.SSH_KEY }}
|
||||||
|
- name: rsync
|
||||||
|
run: |
|
||||||
|
set -x
|
||||||
|
for i in $(find uploads -type f -name 'strawberry-*.dmg'); do
|
||||||
|
rsync -e "ssh -p 50220 -o StrictHostKeyChecking=no" -va $i travis@echoes.jkvinge.net:/home/travis/builds/macos/
|
||||||
|
done
|
||||||
|
|
||||||
|
@ -140,7 +140,7 @@ int main(int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
qLog(Error) << "Could not parse otool output line:" << output_line;
|
qLog(Error) << "Could not parse otool output line:" << output_line;
|
||||||
success = false;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user