mirror of
https://github.com/strawberrymusicplayer/strawberry
synced 2024-12-12 08:36:22 +01:00
2058 lines
70 KiB
YAML
2058 lines
70 KiB
YAML
name: C/C++ CI
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
|
|
build_source:
|
|
name: Create source tarball
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: opensuse/leap:15.3
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Update packages
|
|
run: zypper --non-interactive --gpg-auto-import-keys ref
|
|
- name: Install openSUSE dependencies
|
|
run: >
|
|
zypper --non-interactive --gpg-auto-import-keys install
|
|
lsb-release
|
|
rpm-build
|
|
git
|
|
tar
|
|
make
|
|
cmake
|
|
gcc
|
|
gcc-c++
|
|
gettext-tools
|
|
glibc-devel
|
|
libboost_headers-devel
|
|
boost-devel
|
|
glib2-devel
|
|
glib2-tools
|
|
dbus-1-devel
|
|
alsa-devel
|
|
libnotify-devel
|
|
libgnutls-devel
|
|
protobuf-devel
|
|
sqlite3-devel
|
|
libpulse-devel
|
|
gstreamer-devel
|
|
gstreamer-plugins-base-devel
|
|
vlc-devel
|
|
taglib-devel
|
|
libQt5Core-devel
|
|
libQt5Gui-devel
|
|
libQt5Gui-private-headers-devel
|
|
libQt5Widgets-devel
|
|
libQt5Concurrent-devel
|
|
libQt5Network-devel
|
|
libQt5Sql-devel
|
|
libQt5DBus-devel
|
|
libQt5Test-devel
|
|
libqt5-qtbase-common-devel
|
|
libQt5Sql5-sqlite
|
|
libqt5-linguist-devel
|
|
libqt5-qtx11extras-devel
|
|
libcdio-devel
|
|
libgpod-devel
|
|
libmtp-devel
|
|
libchromaprint-devel
|
|
desktop-file-utils
|
|
update-desktop-files
|
|
appstream-glib
|
|
hicolor-icon-theme
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON
|
|
- name: Create source tarball
|
|
working-directory: build
|
|
run: ../dist/scripts/maketarball.sh
|
|
|
|
|
|
build_opensuse_lp153_qt5:
|
|
name: Build openSUSE Leap 15.3 Qt 5
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: opensuse/leap:15.3
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Add tagparser repo
|
|
run: zypper -n ar -c -f -n 'repo-tagparser' https://download.opensuse.org/repositories/home:/mkittler/openSUSE_Leap_15.3/ repo-tagparser
|
|
- name: Update packages
|
|
run: zypper --non-interactive --gpg-auto-import-keys ref
|
|
- name: Install openSUSE dependencies
|
|
run: >
|
|
zypper --non-interactive --gpg-auto-import-keys install
|
|
lsb-release
|
|
rpm-build
|
|
git
|
|
tar
|
|
make
|
|
cmake
|
|
gcc
|
|
gcc-c++
|
|
gettext-tools
|
|
glibc-devel
|
|
libboost_headers-devel
|
|
boost-devel
|
|
glib2-devel
|
|
glib2-tools
|
|
dbus-1-devel
|
|
alsa-devel
|
|
libnotify-devel
|
|
libgnutls-devel
|
|
protobuf-devel
|
|
sqlite3-devel
|
|
libpulse-devel
|
|
gstreamer-devel
|
|
gstreamer-plugins-base-devel
|
|
vlc-devel
|
|
taglib-devel
|
|
tagparser-devel
|
|
libQt5Core-devel
|
|
libQt5Gui-devel
|
|
libQt5Gui-private-headers-devel
|
|
libQt5Widgets-devel
|
|
libQt5Concurrent-devel
|
|
libQt5Network-devel
|
|
libQt5Sql-devel
|
|
libQt5DBus-devel
|
|
libQt5Test-devel
|
|
libqt5-qtbase-common-devel
|
|
libQt5Sql5-sqlite
|
|
libqt5-linguist-devel
|
|
libqt5-qtx11extras-devel
|
|
libcdio-devel
|
|
libgpod-devel
|
|
libmtp-devel
|
|
libchromaprint-devel
|
|
desktop-file-utils
|
|
update-desktop-files
|
|
appstream-glib
|
|
hicolor-icon-theme
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON -DBUILD_WITH_QT5=ON -DUSE_TAGLIB=ON -DUSE_TAGPARSER=ON
|
|
- name: Create source tarball
|
|
working-directory: build
|
|
run: ../dist/scripts/maketarball.sh
|
|
- name: Create RPM build sources directories
|
|
run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES
|
|
- name: Copy source tarball
|
|
working-directory: build
|
|
run: cp strawberry-*.tar.xz /usr/src/packages/SOURCES/
|
|
- name: Build RPM
|
|
working-directory: build
|
|
run: rpmbuild -ba ../dist/unix/strawberry.spec
|
|
|
|
|
|
build_opensuse_lp153_qt6:
|
|
name: Build openSUSE Leap 15.3 Qt 6
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: opensuse/leap:15.3
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Add tagparser repo
|
|
run: zypper -n ar -c -f -n 'repo-tagparser' https://download.opensuse.org/repositories/home:/mkittler/openSUSE_Leap_15.3/ repo-tagparser
|
|
- name: Add Qt 6 repo
|
|
run: zypper -n ar -c -f -n 'repo-qt6' https://download.opensuse.org/repositories/home:/jonaski:/qt6/openSUSE_Leap_15.3/ repo-qt6
|
|
- name: Update packages
|
|
run: zypper --non-interactive --gpg-auto-import-keys ref
|
|
- name: Install openSUSE dependencies
|
|
run: >
|
|
zypper --non-interactive --gpg-auto-import-keys install
|
|
lsb-release
|
|
rpm-build
|
|
git
|
|
tar
|
|
make
|
|
cmake
|
|
gcc10
|
|
gcc10-c++
|
|
gettext-tools
|
|
glibc-devel
|
|
libboost_headers-devel
|
|
boost-devel
|
|
glib2-devel
|
|
glib2-tools
|
|
dbus-1-devel
|
|
alsa-devel
|
|
libnotify-devel
|
|
libgnutls-devel
|
|
protobuf-devel
|
|
sqlite3-devel
|
|
libpulse-devel
|
|
gstreamer-devel
|
|
gstreamer-plugins-base-devel
|
|
vlc-devel
|
|
taglib-devel
|
|
tagparser-devel
|
|
qt6-core-devel
|
|
qt6-gui-devel
|
|
qt6-gui-private-devel
|
|
qt6-widgets-devel
|
|
qt6-concurrent-devel
|
|
qt6-network-devel
|
|
qt6-sql-devel
|
|
qt6-dbus-devel
|
|
qt6-test-devel
|
|
qt6-base-common-devel
|
|
qt6-sql-sqlite
|
|
qt6-linguist-devel
|
|
libcdio-devel
|
|
libgpod-devel
|
|
libmtp-devel
|
|
libchromaprint-devel
|
|
desktop-file-utils
|
|
update-desktop-files
|
|
appstream-glib
|
|
hicolor-icon-theme
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON -DBUILD_WITH_QT6=ON -DUSE_TAGLIB=ON -DUSE_TAGPARSER=ON
|
|
- name: Create source tarball
|
|
working-directory: build
|
|
run: ../dist/scripts/maketarball.sh
|
|
- name: Create RPM build sources directories
|
|
run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES
|
|
- name: Copy source tarball
|
|
working-directory: build
|
|
run: cp strawberry-*.tar.xz /usr/src/packages/SOURCES/
|
|
- name: Build RPM
|
|
working-directory: build
|
|
env:
|
|
CC: gcc-10
|
|
CXX: g++-10
|
|
run: rpmbuild -ba ../dist/unix/strawberry.spec
|
|
|
|
|
|
build_opensuse_tumbleweed_qt5:
|
|
name: Build openSUSE Tumbleweed Qt 5
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: opensuse/tumbleweed
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Add tagparser repo
|
|
run: zypper -n ar -c -f -n 'repo-tagparser' https://download.opensuse.org/repositories/home:/mkittler/openSUSE_Tumbleweed/ repo-tagparser
|
|
- name: Update packages
|
|
run: zypper --non-interactive --gpg-auto-import-keys ref
|
|
- name: Upgrade packages
|
|
run: zypper --non-interactive --gpg-auto-import-keys dup
|
|
- name: Install openSUSE dependencies
|
|
run: >
|
|
zypper --non-interactive --gpg-auto-import-keys install
|
|
lsb-release
|
|
rpm-build
|
|
git
|
|
tar
|
|
make
|
|
cmake
|
|
gcc
|
|
gcc-c++
|
|
gettext-tools
|
|
glibc-devel
|
|
libboost_headers-devel
|
|
boost-devel
|
|
glib2-devel
|
|
glib2-tools
|
|
dbus-1-devel
|
|
alsa-devel
|
|
libnotify-devel
|
|
libgnutls-devel
|
|
protobuf-devel
|
|
sqlite3-devel
|
|
libpulse-devel
|
|
gstreamer-devel
|
|
gstreamer-plugins-base-devel
|
|
vlc-devel
|
|
taglib-devel
|
|
tagparser-devel
|
|
libQt5Core-devel
|
|
libQt5Gui-devel
|
|
libQt5Gui-private-headers-devel
|
|
libQt5Widgets-devel
|
|
libQt5Concurrent-devel
|
|
libQt5Network-devel
|
|
libQt5Sql-devel
|
|
libQt5DBus-devel
|
|
libQt5Test-devel
|
|
libqt5-qtbase-common-devel
|
|
libQt5Sql5-sqlite
|
|
libqt5-linguist-devel
|
|
libqt5-qtx11extras-devel
|
|
libcdio-devel
|
|
libgpod-devel
|
|
libmtp-devel
|
|
libchromaprint-devel
|
|
desktop-file-utils
|
|
update-desktop-files
|
|
appstream-glib
|
|
hicolor-icon-theme
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON -DBUILD_WITH_QT5=ON -DUSE_TAGLIB=ON -DUSE_TAGPARSER=ON
|
|
- name: Create source tarball
|
|
working-directory: build
|
|
run: ../dist/scripts/maketarball.sh
|
|
- name: Create RPM build sources directories
|
|
run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES
|
|
- name: Copy source tarball
|
|
working-directory: build
|
|
run: cp strawberry-*.tar.xz /usr/src/packages/SOURCES/
|
|
- name: Build RPM
|
|
working-directory: build
|
|
run: rpmbuild -ba ../dist/unix/strawberry.spec
|
|
|
|
|
|
build_opensuse_tumbleweed_qt6:
|
|
name: Build openSUSE Tumbleweed Qt 6
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: opensuse/tumbleweed
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Add tagparser repo
|
|
run: zypper -n ar -c -f -n 'repo-tagparser' https://download.opensuse.org/repositories/home:/mkittler/openSUSE_Tumbleweed/ repo-tagparser
|
|
- name: Update packages
|
|
run: zypper --non-interactive --gpg-auto-import-keys ref
|
|
- name: Upgrade packages
|
|
run: zypper --non-interactive --gpg-auto-import-keys dup
|
|
- name: Install openSUSE dependencies
|
|
run: >
|
|
zypper --non-interactive --gpg-auto-import-keys install
|
|
lsb-release
|
|
rpm-build
|
|
git
|
|
tar
|
|
make
|
|
cmake
|
|
gcc
|
|
gcc-c++
|
|
gettext-tools
|
|
glibc-devel
|
|
libboost_headers-devel
|
|
boost-devel
|
|
glib2-devel
|
|
glib2-tools
|
|
dbus-1-devel
|
|
alsa-devel
|
|
libnotify-devel
|
|
libgnutls-devel
|
|
protobuf-devel
|
|
sqlite3-devel
|
|
libpulse-devel
|
|
gstreamer-devel
|
|
gstreamer-plugins-base-devel
|
|
vlc-devel
|
|
taglib-devel
|
|
tagparser-devel
|
|
qt6-core-devel
|
|
qt6-gui-devel
|
|
qt6-gui-private-devel
|
|
qt6-widgets-devel
|
|
qt6-concurrent-devel
|
|
qt6-network-devel
|
|
qt6-sql-devel
|
|
qt6-dbus-devel
|
|
qt6-test-devel
|
|
qt6-base-common-devel
|
|
qt6-sql-sqlite
|
|
qt6-linguist-devel
|
|
libcdio-devel
|
|
libgpod-devel
|
|
libmtp-devel
|
|
libchromaprint-devel
|
|
desktop-file-utils
|
|
update-desktop-files
|
|
appstream-glib
|
|
hicolor-icon-theme
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON -DBUILD_WITH_QT6=ON -DUSE_TAGLIB=ON -DUSE_TAGPARSER=ON
|
|
- name: Create source tarball
|
|
working-directory: build
|
|
run: ../dist/scripts/maketarball.sh
|
|
- name: Create RPM build sources directories
|
|
run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES
|
|
- name: Copy source tarball
|
|
working-directory: build
|
|
run: cp strawberry-*.tar.xz /usr/src/packages/SOURCES/
|
|
- name: Build RPM
|
|
working-directory: build
|
|
run: rpmbuild -ba ../dist/unix/strawberry.spec
|
|
|
|
|
|
build_fedora_34:
|
|
name: Build Fedora 34
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: fedora:34
|
|
env:
|
|
RPM_BUILD_NCPUS: "2"
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
|
|
- name: Update packages
|
|
run: yum update --assumeyes
|
|
|
|
- name: Upgrade packages
|
|
run: yum upgrade --assumeyes
|
|
|
|
- name: Install Fedora dependencies
|
|
run: >
|
|
dnf install --assumeyes
|
|
@development-tools
|
|
redhat-lsb-core
|
|
git
|
|
glibc
|
|
gcc-c++
|
|
rpmdevtools
|
|
make
|
|
cmake
|
|
pkgconfig
|
|
glib
|
|
man
|
|
tar
|
|
gettext
|
|
openssh
|
|
boost-devel
|
|
dbus-devel
|
|
protobuf-devel
|
|
protobuf-compiler
|
|
sqlite-devel
|
|
alsa-lib-devel
|
|
pulseaudio-libs-devel
|
|
libnotify-devel
|
|
gnutls-devel
|
|
qt6-qtbase-devel
|
|
qt6-qtbase-private-devel
|
|
qt6-qttools-devel
|
|
gstreamer1-devel
|
|
gstreamer1-plugins-base-devel
|
|
taglib-devel
|
|
libcdio-devel
|
|
libgpod-devel
|
|
libmtp-devel
|
|
libchromaprint-devel
|
|
fftw-devel
|
|
desktop-file-utils
|
|
libappstream-glib
|
|
hicolor-icon-theme
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON
|
|
- name: Create source tarball
|
|
working-directory: build
|
|
run: ../dist/scripts/maketarball.sh
|
|
- name: Create RPM build sources directories
|
|
working-directory: build
|
|
run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES
|
|
- name: Copy source tarball
|
|
working-directory: build
|
|
run: cp strawberry-*.tar.xz ~/rpmbuild/SOURCES/
|
|
- name: Build RPM
|
|
working-directory: build
|
|
run: rpmbuild -ba ../dist/unix/strawberry.spec
|
|
|
|
|
|
build_fedora_35:
|
|
name: Build Fedora 35
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: fedora:35
|
|
env:
|
|
RPM_BUILD_NCPUS: "2"
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
|
|
- name: Update packages
|
|
run: yum update --assumeyes
|
|
|
|
- name: Upgrade packages
|
|
run: yum upgrade --assumeyes
|
|
|
|
- name: Install Fedora dependencies
|
|
run: >
|
|
dnf install --assumeyes
|
|
@development-tools
|
|
redhat-lsb-core
|
|
git
|
|
glibc
|
|
gcc-c++
|
|
rpmdevtools
|
|
make
|
|
cmake
|
|
pkgconfig
|
|
glib
|
|
man
|
|
tar
|
|
gettext
|
|
openssh
|
|
boost-devel
|
|
dbus-devel
|
|
protobuf-devel
|
|
protobuf-compiler
|
|
sqlite-devel
|
|
alsa-lib-devel
|
|
pulseaudio-libs-devel
|
|
libnotify-devel
|
|
gnutls-devel
|
|
qt6-qtbase-devel
|
|
qt6-qtbase-private-devel
|
|
qt6-qttools-devel
|
|
gstreamer1-devel
|
|
gstreamer1-plugins-base-devel
|
|
taglib-devel
|
|
libcdio-devel
|
|
libgpod-devel
|
|
libmtp-devel
|
|
libchromaprint-devel
|
|
fftw-devel
|
|
desktop-file-utils
|
|
libappstream-glib
|
|
hicolor-icon-theme
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_WERROR=ON
|
|
- name: Create source tarball
|
|
working-directory: build
|
|
run: ../dist/scripts/maketarball.sh
|
|
- name: Create RPM build sources directories
|
|
working-directory: build
|
|
run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES
|
|
- name: Copy source tarball
|
|
working-directory: build
|
|
run: cp strawberry-*.tar.xz ~/rpmbuild/SOURCES/
|
|
- name: Build RPM
|
|
working-directory: build
|
|
run: rpmbuild -ba ../dist/unix/strawberry.spec
|
|
|
|
|
|
build_openmandriva_cooker:
|
|
name: Build OpenMandriva Lx 4.2
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: openmandriva/4.2
|
|
env:
|
|
RPM_BUILD_NCPUS: "2"
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
|
|
- name: Update packages
|
|
run: dnf update --assumeyes
|
|
|
|
- name: Upgrade packages
|
|
run: dnf upgrade --assumeyes
|
|
|
|
- name: Install OpenMandriva dependencies
|
|
run: >
|
|
dnf install --assumeyes
|
|
glibc
|
|
gcc-c++
|
|
git
|
|
gnutar
|
|
make
|
|
cmake
|
|
glib
|
|
gettext
|
|
lsb-release
|
|
rpmdevtools
|
|
rpm-build
|
|
glibc-devel
|
|
boost-devel
|
|
dbus-devel
|
|
protobuf-devel
|
|
protobuf-compiler
|
|
sqlite-devel
|
|
libasound-devel
|
|
pulseaudio-devel
|
|
gnutls-devel
|
|
lib64GL-devel
|
|
libgst-plugins-base1.0-devel
|
|
taglib-devel
|
|
chromaprint-devel
|
|
fftw-devel
|
|
libcdio-devel
|
|
libgpod-devel
|
|
libmtp-devel
|
|
lib64Qt6Core-devel
|
|
lib64Qt6Concurrent-devel
|
|
lib64Qt6Network-devel
|
|
lib64Qt6Sql-devel
|
|
lib64Qt6DBus-devel
|
|
lib64Qt6Gui-devel
|
|
lib64Qt6Widgets-devel
|
|
lib64Qt6Test-devel
|
|
qt6-cmake
|
|
qt6-qtbase-tools
|
|
qt6-qttools
|
|
desktop-file-utils
|
|
appstream
|
|
appstream-util
|
|
hicolor-icon-theme
|
|
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_WERROR=ON
|
|
- name: Create source tarball
|
|
working-directory: build
|
|
run: ../dist/scripts/maketarball.sh
|
|
- name: Create RPM build sources directories
|
|
working-directory: build
|
|
run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES
|
|
- name: Copy source tarball
|
|
working-directory: build
|
|
run: cp strawberry-*.tar.xz ~/rpmbuild/SOURCES/
|
|
- name: Build RPM
|
|
working-directory: build
|
|
run: rpmbuild -ba ../dist/unix/strawberry.spec
|
|
|
|
|
|
|
|
build_debian_buster:
|
|
name: Build Debian Buster
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: debian:buster
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Install Debian dependencies
|
|
run: >
|
|
apt-get update && apt-get install -y
|
|
build-essential
|
|
dh-make
|
|
ssh
|
|
git
|
|
make
|
|
cmake
|
|
gcc
|
|
pkg-config
|
|
fakeroot
|
|
gettext
|
|
lsb-release
|
|
libglib2.0-dev
|
|
dpkg-dev
|
|
libdbus-1-dev
|
|
libboost-dev
|
|
libprotobuf-dev
|
|
protobuf-compiler
|
|
libsqlite3-dev
|
|
libgnutls28-dev
|
|
libasound2-dev
|
|
libpulse-dev
|
|
libtag1-dev
|
|
qtbase5-dev
|
|
qtbase5-dev-tools
|
|
qtbase5-private-dev
|
|
qttools5-dev
|
|
libqt5x11extras5-dev
|
|
libgstreamer1.0-dev
|
|
libgstreamer-plugins-base1.0-dev
|
|
gstreamer1.0-alsa
|
|
gstreamer1.0-pulseaudio
|
|
libchromaprint-dev
|
|
libfftw3-dev
|
|
libcdio-dev
|
|
libmtp-dev
|
|
libgpod-dev
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=Debug
|
|
- name: make deb
|
|
shell: bash
|
|
run: dpkg-buildpackage -b -d -uc -us -nc -j2
|
|
|
|
|
|
build_debian_bullseye:
|
|
name: Build Debian Bullseye
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: debian:bullseye
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Install Debian dependencies
|
|
run: >
|
|
apt-get update && apt-get install -y
|
|
build-essential
|
|
dh-make
|
|
ssh
|
|
git
|
|
make
|
|
cmake
|
|
gcc
|
|
pkg-config
|
|
fakeroot
|
|
gettext
|
|
lsb-release
|
|
libglib2.0-dev
|
|
dpkg-dev
|
|
libdbus-1-dev
|
|
libboost-dev
|
|
libprotobuf-dev
|
|
protobuf-compiler
|
|
libsqlite3-dev
|
|
libgnutls28-dev
|
|
libasound2-dev
|
|
libpulse-dev
|
|
libtag1-dev
|
|
qtbase5-dev
|
|
qtbase5-dev-tools
|
|
qtbase5-private-dev
|
|
qttools5-dev
|
|
libqt5x11extras5-dev
|
|
libgstreamer1.0-dev
|
|
libgstreamer-plugins-base1.0-dev
|
|
gstreamer1.0-alsa
|
|
gstreamer1.0-pulseaudio
|
|
libchromaprint-dev
|
|
libfftw3-dev
|
|
libcdio-dev
|
|
libmtp-dev
|
|
libgpod-dev
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON
|
|
- name: make deb
|
|
shell: bash
|
|
run: dpkg-buildpackage -b -d -uc -us -nc -j2
|
|
|
|
build_debian_bookworm:
|
|
name: Build Debian Bookworm
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: debian:bookworm
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Install Debian dependencies
|
|
run: >
|
|
apt-get update && apt-get install -y
|
|
build-essential
|
|
dh-make
|
|
ssh
|
|
git
|
|
make
|
|
cmake
|
|
gcc
|
|
pkg-config
|
|
fakeroot
|
|
gettext
|
|
lsb-release
|
|
libglib2.0-dev
|
|
dpkg-dev
|
|
libdbus-1-dev
|
|
libboost-dev
|
|
libprotobuf-dev
|
|
protobuf-compiler
|
|
libsqlite3-dev
|
|
libgnutls28-dev
|
|
libasound2-dev
|
|
libpulse-dev
|
|
libtag1-dev
|
|
qtbase5-dev
|
|
qtbase5-dev-tools
|
|
qtbase5-private-dev
|
|
qttools5-dev
|
|
libqt5x11extras5-dev
|
|
libgstreamer1.0-dev
|
|
libgstreamer-plugins-base1.0-dev
|
|
gstreamer1.0-alsa
|
|
gstreamer1.0-pulseaudio
|
|
libchromaprint-dev
|
|
libfftw3-dev
|
|
libcdio-dev
|
|
libmtp-dev
|
|
libgpod-dev
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON
|
|
- name: make deb
|
|
shell: bash
|
|
run: dpkg-buildpackage -b -d -uc -us -nc -j2
|
|
|
|
|
|
build_ubuntu_bionic:
|
|
name: Build Ubuntu Bionic
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: ubuntu:bionic
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Install Ubuntu dependencies
|
|
env:
|
|
DEBIAN_FRONTEND: noninteractive
|
|
run: >
|
|
apt-get update && apt-get install -y
|
|
build-essential
|
|
dh-make
|
|
ssh
|
|
git
|
|
make
|
|
cmake
|
|
pkg-config
|
|
gcc
|
|
fakeroot
|
|
wget
|
|
curl
|
|
gettext
|
|
lsb-release
|
|
dpkg-dev
|
|
libglib2.0-dev
|
|
libboost-dev
|
|
libdbus-1-dev
|
|
libprotobuf-dev
|
|
protobuf-compiler
|
|
libsqlite3-dev
|
|
libgnutls28-dev
|
|
libasound2-dev
|
|
libpulse-dev
|
|
libtag1-dev
|
|
qtbase5-dev
|
|
qtbase5-dev-tools
|
|
qtbase5-private-dev
|
|
qttools5-dev
|
|
libqt5x11extras5-dev
|
|
libgstreamer1.0-dev
|
|
libgstreamer-plugins-base1.0-dev
|
|
libgstreamer-plugins-good1.0-dev
|
|
gstreamer1.0-alsa
|
|
gstreamer1.0-pulseaudio
|
|
libchromaprint-dev
|
|
libfftw3-dev
|
|
libcdio-dev
|
|
libmtp-dev
|
|
libgpod-dev
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON
|
|
- name: make deb
|
|
shell: bash
|
|
run: dpkg-buildpackage -b -d -uc -us -nc -j2
|
|
|
|
|
|
build_ubuntu_focal:
|
|
name: Build Ubuntu Focal
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: ubuntu:focal
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Install Ubuntu dependencies
|
|
env:
|
|
DEBIAN_FRONTEND: noninteractive
|
|
run: >
|
|
apt-get update && apt-get install -y
|
|
build-essential
|
|
dh-make
|
|
ssh
|
|
git
|
|
make
|
|
cmake
|
|
pkg-config
|
|
gcc
|
|
fakeroot
|
|
wget
|
|
curl
|
|
gettext
|
|
lsb-release
|
|
dpkg-dev
|
|
libglib2.0-dev
|
|
libboost-dev
|
|
libdbus-1-dev
|
|
libprotobuf-dev
|
|
protobuf-compiler
|
|
libsqlite3-dev
|
|
libgnutls28-dev
|
|
libasound2-dev
|
|
libpulse-dev
|
|
libtag1-dev
|
|
qtbase5-dev
|
|
qtbase5-dev-tools
|
|
qtbase5-private-dev
|
|
qttools5-dev
|
|
libqt5x11extras5-dev
|
|
libgstreamer1.0-dev
|
|
libgstreamer-plugins-base1.0-dev
|
|
libgstreamer-plugins-good1.0-dev
|
|
gstreamer1.0-alsa
|
|
gstreamer1.0-pulseaudio
|
|
libchromaprint-dev
|
|
libfftw3-dev
|
|
libcdio-dev
|
|
libmtp-dev
|
|
libgpod-dev
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON
|
|
- name: make deb
|
|
shell: bash
|
|
run: dpkg-buildpackage -b -d -uc -us -nc -j2
|
|
|
|
|
|
build_ubuntu_hirsute:
|
|
name: Build Ubuntu Hirsute
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: ubuntu:hirsute
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Install Ubuntu dependencies
|
|
env:
|
|
DEBIAN_FRONTEND: noninteractive
|
|
run: >
|
|
apt-get update && apt-get install -y
|
|
build-essential
|
|
dh-make
|
|
ssh
|
|
git
|
|
make
|
|
cmake
|
|
pkg-config
|
|
gcc
|
|
fakeroot
|
|
wget
|
|
curl
|
|
gettext
|
|
lsb-release
|
|
dpkg-dev
|
|
libglib2.0-dev
|
|
libboost-dev
|
|
libdbus-1-dev
|
|
libprotobuf-dev
|
|
protobuf-compiler
|
|
libsqlite3-dev
|
|
libgnutls28-dev
|
|
libasound2-dev
|
|
libpulse-dev
|
|
libtag1-dev
|
|
qtbase5-dev
|
|
qtbase5-dev-tools
|
|
qtbase5-private-dev
|
|
qttools5-dev
|
|
libqt5x11extras5-dev
|
|
libgstreamer1.0-dev
|
|
libgstreamer-plugins-base1.0-dev
|
|
libgstreamer-plugins-good1.0-dev
|
|
gstreamer1.0-alsa
|
|
gstreamer1.0-pulseaudio
|
|
libchromaprint-dev
|
|
libfftw3-dev
|
|
libcdio-dev
|
|
libmtp-dev
|
|
libgpod-dev
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON
|
|
- name: make deb
|
|
shell: bash
|
|
run: dpkg-buildpackage -b -d -uc -us -nc -j2
|
|
|
|
|
|
build_ubuntu_impish:
|
|
name: Build Ubuntu Impish
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: ubuntu:impish
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Install Ubuntu dependencies
|
|
env:
|
|
DEBIAN_FRONTEND: noninteractive
|
|
run: >
|
|
apt-get update && apt-get install -y
|
|
build-essential
|
|
dh-make
|
|
ssh
|
|
git
|
|
make
|
|
cmake
|
|
pkg-config
|
|
gcc
|
|
fakeroot
|
|
wget
|
|
curl
|
|
gettext
|
|
lsb-release
|
|
dpkg-dev
|
|
libglib2.0-dev
|
|
libboost-dev
|
|
libdbus-1-dev
|
|
libprotobuf-dev
|
|
protobuf-compiler
|
|
libsqlite3-dev
|
|
libgnutls28-dev
|
|
libasound2-dev
|
|
libpulse-dev
|
|
libtag1-dev
|
|
qtbase5-dev
|
|
qtbase5-dev-tools
|
|
qtbase5-private-dev
|
|
qttools5-dev
|
|
libqt5x11extras5-dev
|
|
libgstreamer1.0-dev
|
|
libgstreamer-plugins-base1.0-dev
|
|
libgstreamer-plugins-good1.0-dev
|
|
gstreamer1.0-alsa
|
|
gstreamer1.0-pulseaudio
|
|
libchromaprint-dev
|
|
libfftw3-dev
|
|
libcdio-dev
|
|
libmtp-dev
|
|
libgpod-dev
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON
|
|
- name: make deb
|
|
shell: bash
|
|
run: dpkg-buildpackage -b -d -uc -us -nc -j2
|
|
|
|
build_ubuntu_jammy:
|
|
name: Build Ubuntu Jammy
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: ubuntu:jammy
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Install Ubuntu dependencies
|
|
env:
|
|
DEBIAN_FRONTEND: noninteractive
|
|
run: >
|
|
apt-get update && apt-get install -y
|
|
build-essential
|
|
dh-make
|
|
ssh
|
|
git
|
|
make
|
|
cmake
|
|
pkg-config
|
|
gcc
|
|
fakeroot
|
|
wget
|
|
curl
|
|
gettext
|
|
lsb-release
|
|
dpkg-dev
|
|
libglib2.0-dev
|
|
libboost-dev
|
|
libdbus-1-dev
|
|
libprotobuf-dev
|
|
protobuf-compiler
|
|
libsqlite3-dev
|
|
libgnutls28-dev
|
|
libasound2-dev
|
|
libpulse-dev
|
|
libtag1-dev
|
|
qtbase5-dev
|
|
qtbase5-dev-tools
|
|
qtbase5-private-dev
|
|
qttools5-dev
|
|
libqt5x11extras5-dev
|
|
libgstreamer1.0-dev
|
|
libgstreamer-plugins-base1.0-dev
|
|
libgstreamer-plugins-good1.0-dev
|
|
gstreamer1.0-alsa
|
|
gstreamer1.0-pulseaudio
|
|
libchromaprint-dev
|
|
libfftw3-dev
|
|
libcdio-dev
|
|
libmtp-dev
|
|
libgpod-dev
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON
|
|
- name: make deb
|
|
shell: bash
|
|
run: dpkg-buildpackage -b -d -uc -us -nc -j2
|
|
|
|
|
|
build-macos-qt5:
|
|
name: Build macOS Qt 5
|
|
runs-on: macos-10.15
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Install packages
|
|
run: >
|
|
brew install
|
|
wget
|
|
glib
|
|
pkgconfig
|
|
boost
|
|
libffi
|
|
protobuf
|
|
protobuf-c
|
|
qt5
|
|
gettext
|
|
gnutls
|
|
fftw
|
|
sqlite
|
|
chromaprint
|
|
gstreamer
|
|
gst-plugins-base
|
|
gst-plugins-good
|
|
gst-plugins-bad
|
|
gst-plugins-ugly
|
|
gst-libav
|
|
libcdio
|
|
libmtp
|
|
create-dmg
|
|
taglib
|
|
libplist
|
|
gdk-pixbuf
|
|
|
|
- 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: 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=Debug -DBUILD_WITH_QT5=ON -DBUILD_WERROR=ON -DUSE_BUNDLE=ON -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5/lib/cmake
|
|
- name: Build
|
|
working-directory: build
|
|
shell: bash
|
|
run: cmake --build . --config Debug --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 -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
|
|
- 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
|
|
|
|
build-macos-qt6:
|
|
name: Build macOS Qt 6
|
|
runs-on: macos-10.15
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Install packages
|
|
run: >
|
|
brew install
|
|
wget
|
|
glib
|
|
pkgconfig
|
|
boost
|
|
libffi
|
|
protobuf
|
|
protobuf-c
|
|
qt6
|
|
gettext
|
|
gnutls
|
|
fftw
|
|
sqlite
|
|
chromaprint
|
|
gstreamer
|
|
gst-plugins-base
|
|
gst-plugins-good
|
|
gst-plugins-bad
|
|
gst-plugins-ugly
|
|
gst-libav
|
|
libcdio
|
|
libmtp
|
|
create-dmg
|
|
taglib
|
|
libplist
|
|
gdk-pixbuf
|
|
|
|
- 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
|
|
|
|
- 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=ON -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 -v /usr/local/lib/libbrotlicommon.1.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
|
|
|
|
|
|
build-windows-mingw:
|
|
name: Build Windows MinGW
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: jonaski/strawberry-mxe-x86_64
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
|
|
- name: Link MXE directory
|
|
shell: bash
|
|
run: ln -s /usr/src/strawberry-mxe ~/mxe-shared
|
|
|
|
- name: Run CMake
|
|
shell: bash
|
|
env:
|
|
PKG_CONFIG_PATH: /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/lib/pkgconfig
|
|
working-directory: build
|
|
run: >
|
|
cmake ..
|
|
-DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-x86_64-w64-mingw32-shared.cmake
|
|
-DCMAKE_BUILD_TYPE=Release
|
|
-DCMAKE_PREFIX_PATH=/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt6
|
|
-DBUILD_WITH_QT6=ON
|
|
-DBUILD_WERROR=OFF
|
|
-DARCH=x86_64
|
|
-DENABLE_WIN32_CONSOLE=OFF
|
|
-DENABLE_DBUS=OFF
|
|
-DENABLE_LIBGPOD=OFF
|
|
-DENABLE_LIBMTP=OFF
|
|
-DProtobuf_PROTOC_EXECUTABLE=/usr/src/strawberry-mxe/usr/x86_64-pc-linux-gnu/bin/protoc
|
|
|
|
- name: Run Make
|
|
working-directory: build
|
|
run: cmake --build . --config Release --parallel $(nproc)
|
|
|
|
- name: Create directories
|
|
working-directory: build
|
|
run: mkdir -p gio-modules platforms sqldrivers tls imageformats styles gstreamer-plugins nsisplugins
|
|
|
|
- name: Copy GIO modules
|
|
working-directory: build
|
|
run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/lib/gio/modules/libgiognutls.dll ${GITHUB_WORKSPACE}/build/gio-modules/
|
|
|
|
- name: Copy Qt platform plugins
|
|
working-directory: build
|
|
run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt6/plugins/platforms/qwindows.dll ${GITHUB_WORKSPACE}/build/platforms/
|
|
|
|
- name: Copy Qt styles
|
|
working-directory: build
|
|
run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt6/plugins/styles/qwindowsvistastyle.dll ${GITHUB_WORKSPACE}/build/styles/
|
|
|
|
- name: Copy Qt TLS plugins
|
|
working-directory: build
|
|
run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt6/plugins/tls/qopensslbackend.dll ${GITHUB_WORKSPACE}/build/tls/
|
|
|
|
- name: Copy Qt SQL drivers
|
|
working-directory: build
|
|
run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt6/plugins/sqldrivers/qsqlite.dll ${GITHUB_WORKSPACE}/build/sqldrivers/
|
|
|
|
- name: Copy Qt imageformats
|
|
working-directory: build
|
|
run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt6/plugins/imageformats/{qgif.dll,qico.dll,qjpeg.dll} ${GITHUB_WORKSPACE}/build/imageformats/
|
|
|
|
- name: Copy gstreamer plugins
|
|
working-directory: build
|
|
run: >
|
|
cp
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstapp.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstcoreelements.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaudioconvert.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaudiofx.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaudiomixer.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaudioparsers.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaudiorate.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaudioresample.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaudiotestsrc.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstautodetect.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstplayback.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstvolume.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstspectrum.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstequalizer.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstreplaygain.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgsttypefindfunctions.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstgio.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstdirectsound.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstwasapi.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstpbtypes.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstapetag.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgsticydemux.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstid3demux.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgsttaglib.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgsttcp.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstudp.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstsoup.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstcdio.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstrtp.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstrtsp.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstflac.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstwavparse.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstwavpack.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstogg.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstvorbis.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstopus.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstopusparse.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstspeex.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstlame.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaiff.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstfaac.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstfaad.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstisomp4.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstasf.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstasfmux.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstlibav.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstopenmpt.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstdash.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstxingmux.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstmpg123.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstbs2b.dll
|
|
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstremovesilence.dll
|
|
${GITHUB_WORKSPACE}/build/gstreamer-plugins/
|
|
|
|
- name: Copy extra binaries
|
|
working-directory: build
|
|
run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/{sqlite3.exe,gst-launch-1.0.exe,gst-discoverer-1.0.exe,libsoup-3.0-0.dll} .
|
|
|
|
- name: Copy dependencies
|
|
working-directory: build
|
|
run: >
|
|
/usr/src/strawberry-mxe/tools/copydlldeps.sh
|
|
-c
|
|
-d .
|
|
-F .
|
|
-F ./platforms
|
|
-F ./styles
|
|
-F ./imageformats
|
|
-F ./tls
|
|
-F ./sqldrivers
|
|
-F ./gstreamer-plugins
|
|
-R /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared
|
|
|
|
- name: Strip binaries
|
|
working-directory: build
|
|
run: find . -type f \( -iname \*.dll -o -iname \*.exe \) -exec /usr/src/strawberry-mxe/usr/bin/x86_64-w64-mingw32.shared-strip {} \;
|
|
|
|
- name: Copy nsis files
|
|
working-directory: build
|
|
run: cp ${GITHUB_WORKSPACE}/dist/windows/*.nsi ${GITHUB_WORKSPACE}/dist/windows/*.nsh ${GITHUB_WORKSPACE}/dist/windows/*.ico .
|
|
|
|
- name: Copy COPYING license file
|
|
working-directory: build
|
|
run: cp ${GITHUB_WORKSPACE}/COPYING .
|
|
|
|
- name: Build Windows installer
|
|
working-directory: build
|
|
run: makensis strawberry.nsi
|
|
|
|
build-windows-msvc:
|
|
name: Build Windows MSVC
|
|
runs-on: windows-2019
|
|
steps:
|
|
|
|
- uses: ilammy/msvc-dev-cmd@v1
|
|
with:
|
|
arch: x86_64
|
|
toolset: 14.29
|
|
|
|
- uses: actions/checkout@v1.2.0
|
|
|
|
- name: Download Boost
|
|
uses: suisei-cn/actions-download-file@v1
|
|
with:
|
|
url: "Boost [this](https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.zip)!"
|
|
target: downloads/
|
|
auto-match: true
|
|
|
|
- name: Download Qt Base
|
|
uses: suisei-cn/actions-download-file@v1
|
|
with:
|
|
url: "Qt Base [this](https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt6_623/qt.qt6.623.win64_msvc2019_64/6.2.3-0-202201260729qtbase-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z)!"
|
|
target: downloads/
|
|
auto-match: true
|
|
|
|
- name: Download Qt Tools
|
|
uses: suisei-cn/actions-download-file@v1
|
|
with:
|
|
url: "Qt Tools [this](https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt6_623/qt.qt6.623.win64_msvc2019_64/6.2.3-0-202201260729qttools-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z)!"
|
|
target: downloads/
|
|
auto-match: true
|
|
|
|
- name: Download Qt OpenSSL
|
|
uses: suisei-cn/actions-download-file@v1
|
|
with:
|
|
url: "Qt OpenSSL [this](https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/tools_openssl_x64/qt.tools.openssl.win_x64/1.1.1-10openssl_1.1.1j_prebuild_x64.7z)!"
|
|
target: downloads/
|
|
auto-match: true
|
|
|
|
- name: Download SQLite
|
|
uses: suisei-cn/actions-download-file@v1
|
|
with:
|
|
url: "SQLite [this](https://sqlite.org/2022/sqlite-autoconf-3370200.tar.gz)!"
|
|
target: downloads/
|
|
auto-match: true
|
|
|
|
- name: Download glib-networking
|
|
uses: suisei-cn/actions-download-file@v1
|
|
with:
|
|
url: "glib-networking [this](https://download.gnome.org/sources/glib-networking/2.62/glib-networking-2.62.4.tar.xz)!"
|
|
target: downloads/
|
|
auto-match: true
|
|
|
|
- name: Download GStreamer
|
|
uses: suisei-cn/actions-download-file@v1
|
|
with:
|
|
url: "GStreamer [this](https://gstreamer.freedesktop.org/data/pkg/windows/1.20.0/msvc/gstreamer-1.0-msvc-x86_64-1.20.0.msi)!"
|
|
target: downloads/
|
|
auto-match: true
|
|
|
|
- name: Download GStreamer Devel
|
|
uses: suisei-cn/actions-download-file@v1
|
|
with:
|
|
url: "GStreamer Devel [this](https://gstreamer.freedesktop.org/data/pkg/windows/1.20.0/msvc/gstreamer-1.0-devel-msvc-x86_64-1.20.0.msi)!"
|
|
target: downloads/
|
|
auto-match: true
|
|
|
|
- name: Download GnuTLS
|
|
uses: suisei-cn/actions-download-file@v1
|
|
with:
|
|
url: "GnutTLS [this](https://github.com/ShiftMediaProject/gnutls/releases/download/3.7.2/libgnutls_3.7.2_msvc14.zip)!"
|
|
target: downloads/
|
|
auto-match: true
|
|
|
|
- name: Download GnuTLS PC File
|
|
uses: suisei-cn/actions-download-file@v1
|
|
with:
|
|
url: "GnutTLS PC File [this](https://files.strawberrymusicplayer.org/gnutls.pc)!"
|
|
target: downloads/
|
|
auto-match: true
|
|
|
|
- name: Download TagLib
|
|
uses: suisei-cn/actions-download-file@v1
|
|
with:
|
|
url: "TagLib [this](https://taglib.org/releases/taglib-1.12.tar.gz)!"
|
|
target: downloads/
|
|
auto-match: true
|
|
|
|
- name: Download FFTW
|
|
uses: suisei-cn/actions-download-file@v1
|
|
with:
|
|
url: "FFTW [this](https://fftw.org/pub/fftw/fftw-3.3.5-dll64.zip)!"
|
|
target: downloads/
|
|
auto-match: true
|
|
|
|
- name: Download Chromaprint
|
|
uses: suisei-cn/actions-download-file@v1
|
|
with:
|
|
url: "Chromaprint [this](https://github.com/acoustid/chromaprint/releases/download/v1.5.1/chromaprint-1.5.1.tar.gz)!"
|
|
target: downloads/
|
|
auto-match: true
|
|
|
|
- name: Download Protobuf
|
|
uses: suisei-cn/actions-download-file@v1
|
|
with:
|
|
url: "Protobuf [this](https://files.strawberrymusicplayer.org/protobuf-3.19.4-msvc.zip)!"
|
|
# url: "Protobuf [this](https://github.com/protocolbuffers/protobuf/releases/download/v3.19.4/protobuf-cpp-3.19.4.zip)!"
|
|
target: downloads/
|
|
auto-match: true
|
|
|
|
- name: Create sources directory
|
|
run: mkdir sources
|
|
|
|
- name: Download qtsparkle
|
|
shell: bash
|
|
working-directory: sources
|
|
run: git clone https://github.com/davidsansome/qtsparkle qtsparkle-git
|
|
|
|
- name: Download qtsparkle pc file
|
|
shell: bash
|
|
working-directory: sources/qtsparkle-git
|
|
run: curl -O -L https://files.strawberrymusicplayer.org/qtsparkle-qt6.pc
|
|
|
|
- name: Download LockedList plugin for NSIS
|
|
uses: suisei-cn/actions-download-file@v1
|
|
with:
|
|
url: "LockedList [this](https://nsis.sourceforge.io/mediawiki/images/d/d3/LockedList.zip)!"
|
|
target: downloads/
|
|
auto-match: true
|
|
|
|
- name: Extract NSIS LockedList plugin
|
|
run: 7z x -o"${{github.workspace}}/NSIS_Plugins" "${{github.workspace}}/downloads/LockedList.zip"
|
|
|
|
- name: Copy NSIS LockedList plugin
|
|
run: |
|
|
copy "${{github.workspace}}/NSIS_Plugins/Plugins/LockedList64.dll" "C:/Program Files (x86)/NSIS/Plugins/"
|
|
copy "${{github.workspace}}/NSIS_Plugins/Plugins/x86-unicode/LockedList.dll" "C:/Program Files (x86)/NSIS/Plugins/x86-unicode/"
|
|
|
|
- name: Grant Full Access to c:\windows\temp directory
|
|
run: icacls "C:\Windows\Temp" /q /c /t /grant Users:F /T
|
|
|
|
- name: Install GStreamer
|
|
working-directory: downloads
|
|
run: msiexec /a gstreamer-1.0-msvc-x86_64-1.20.0.msi /passive /qn
|
|
|
|
- name: Wait for GStreamer installation to complete
|
|
run: Start-Sleep -s 20
|
|
shell: powershell
|
|
|
|
- name: Install GStreamer Devel
|
|
working-directory: downloads
|
|
run: msiexec /a gstreamer-1.0-devel-msvc-x86_64-1.20.0.msi /passive /qn
|
|
|
|
- name: Wait for GStreamer Devel installation to complete
|
|
run: Start-Sleep -s 30
|
|
shell: powershell
|
|
|
|
- name: Extract Boost
|
|
working-directory: sources
|
|
run: 7z x ..\downloads\boost_1_78_0.zip
|
|
|
|
- name: Copy Boost
|
|
shell: bash
|
|
working-directory: sources
|
|
run: cp -r boost_1_78_0/boost /c/gstreamer/1.0/msvc_x86_64/include/
|
|
|
|
- name: Extract Qt
|
|
working-directory: C:\
|
|
shell: bash
|
|
run: |
|
|
mkdir qt
|
|
cd qt
|
|
7z x "${{github.workspace}}/downloads/6.2.3-0-202201260729qtbase-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z"
|
|
7z x "${{github.workspace}}/downloads/6.2.3-0-202201260729qttools-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z"
|
|
7z x "${{github.workspace}}/downloads/1.1.1-10openssl_1.1.1j_prebuild_x64.7z"
|
|
|
|
- name: Extract GnuTLS
|
|
run: |
|
|
mkdir gnutls
|
|
cd gnutls
|
|
7z x "${{github.workspace}}/downloads/libgnutls_3.7.2_msvc14.zip"
|
|
xcopy /s /y bin\x64\*.* c:\gstreamer\1.0\msvc_x86_64\bin\
|
|
xcopy /s /y lib\x64\*.* c:\gstreamer\1.0\msvc_x86_64\lib\
|
|
xcopy /s /y include\* c:\gstreamer\1.0\msvc_x86_64\include\
|
|
xcopy /s /y include\* c:\gstreamer\1.0\msvc_x86_64\include\
|
|
copy "${{github.workspace}}/downloads/gnutls.pc" c:\gstreamer\1.0\msvc_x86_64\lib\pkgconfig\
|
|
|
|
- name: Extract TagLib
|
|
working-directory: sources
|
|
shell: bash
|
|
run: tar -xvf ../downloads/taglib-1.12.tar.gz
|
|
|
|
- name: Extract Chromaprint
|
|
working-directory: sources
|
|
shell: bash
|
|
run: tar -xvf ../downloads/chromaprint-1.5.1.tar.gz
|
|
|
|
- name: Extract glib-networking
|
|
working-directory: sources
|
|
shell: bash
|
|
run: tar -xvf ../downloads/glib-networking-2.62.4.tar.xz
|
|
|
|
- name: Extract FFTW
|
|
run: |
|
|
mkdir fftw
|
|
cd fftw
|
|
7z x "${{github.workspace}}/downloads/fftw-3.3.5-dll64.zip"
|
|
lib /def:libfftw3-3.def
|
|
lib /def:libfftw3f-3.def
|
|
lib /def:libfftw3l-3.def
|
|
xcopy /s /y *.dll c:\gstreamer\1.0\msvc_x86_64\bin\
|
|
xcopy /s /y *.lib c:\gstreamer\1.0\msvc_x86_64\lib\
|
|
xcopy /s /y *.h c:\gstreamer\1.0\msvc_x86_64\include\
|
|
|
|
#- name: Compile Protobuf
|
|
# env:
|
|
# CL: "/MP"
|
|
# working-directory: sources/protobuf-3.19.4
|
|
# run: |
|
|
# cd cmake
|
|
# mkdir build
|
|
# cd build
|
|
# cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -Dprotobuf_BUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX="${{github.workspace}}/protobuf" -Dprotobuf_BUILD_TESTS=OFF
|
|
# nmake
|
|
# cmake --install .
|
|
# copy ..\cmake\build\protobuf.pc c:\gstreamer\1.0\msvc_x86_64\lib\pkgconfig\
|
|
|
|
- name: Extract Protobuf
|
|
run: |
|
|
7z x downloads\protobuf-3.19.4-msvc.zip
|
|
xcopy /s /y protobuf-3.19.4-msvc\bin\*.dll c:\gstreamer\1.0\msvc_x86_64\bin\
|
|
xcopy /s /y protobuf-3.19.4-msvc\bin\*.exe c:\gstreamer\1.0\msvc_x86_64\bin\
|
|
xcopy /s /y protobuf-3.19.4-msvc\lib\*.lib c:\gstreamer\1.0\msvc_x86_64\lib\
|
|
xcopy /s /y protobuf-3.19.4-msvc\lib\pkgconfig\*.pc c:\gstreamer\1.0\msvc_x86_64\lib\pkgconfig\
|
|
xcopy /s /y protobuf-3.19.4-msvc\include\*.* c:\gstreamer\1.0\msvc_x86_64\include\
|
|
|
|
- name: Extract SQLite
|
|
working-directory: sources
|
|
shell: bash
|
|
run: tar -xvf ../downloads/sqlite-autoconf-3370200.tar.gz
|
|
|
|
- name: Compile SQlite
|
|
env:
|
|
CL: "/MP"
|
|
working-directory: sources/sqlite-autoconf-3370200
|
|
run: cl shell.c sqlite3.c -Fe:sqlite3.exe
|
|
#cl -DSQLITE_API="__declspec(dllexport)" sqlite3.c -link -dll -out:sqlite3.dll
|
|
|
|
# - name: Copy SQLite
|
|
# working-directory: sources/sqlite-autoconf-3370200
|
|
# run: |
|
|
# copy *.h c:\gstreamer\1.0\msvc_x86_64\include\
|
|
# copy *.lib c:\gstreamer\1.0\msvc_x86_64\lib\
|
|
# copy *.dll c:\gstreamer\1.0\msvc_x86_64\bin\
|
|
# copy *.def c:\gstreamer\1.0\msvc_x86_64\lib\
|
|
# copy *.def c:\gstreamer\1.0\msvc_x86_64\bin\
|
|
|
|
- name: Compile TagLib
|
|
env:
|
|
CL: "/MP"
|
|
working-directory: sources/taglib-1.12
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="c:\gstreamer\1.0\msvc_x86_64" -DBUILD_SHARED_LIBS=ON
|
|
nmake
|
|
cmake --install .
|
|
|
|
- name: Compile Chromaprint
|
|
env:
|
|
CL: "/MP"
|
|
working-directory: sources/chromaprint-1.5.1
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DFFMPEG_ROOT=C:\gstreamer\1.0\msvc_x86_64 -DCMAKE_INSTALL_PREFIX=C:\gstreamer\1.0\msvc_x86_64
|
|
nmake
|
|
cmake --install .
|
|
|
|
- name: Update PATH
|
|
run: echo "c:\gstreamer\1.0\msvc_x86_64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
|
|
|
- name: Compile glib-networking
|
|
env:
|
|
CL: "/MP"
|
|
working-directory: sources/glib-networking-2.62.4
|
|
run: |
|
|
echo "c:\gstreamer\1.0\msvc_x86_64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
|
pip3 install meson
|
|
meson -Dgnutls=enabled -Dpkg_config_path=c:\gstreamer\1.0\msvc_x86_64\lib\pkgconfig build
|
|
cd build
|
|
ninja
|
|
|
|
- name: Compile qtsparkle
|
|
env:
|
|
CL: "/MP"
|
|
working-directory: sources/qtsparkle-git
|
|
run: |
|
|
copy qtsparkle-qt6.pc c:\gstreamer\1.0\msvc_x86_64\lib\pkgconfig\
|
|
mkdir build
|
|
cd build
|
|
cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_WITH_QT6=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_PREFIX_PATH=c:\qt\6.2.3\msvc2019_64\lib\cmake -DCMAKE_INSTALL_PREFIX="${{github.workspace}}/qtsparkle"
|
|
nmake
|
|
cmake --install .
|
|
cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_WITH_QT6=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_PREFIX_PATH=c:\qt\6.2.3\msvc2019_64\lib\cmake -DCMAKE_INSTALL_PREFIX="${{github.workspace}}/qtsparkle"
|
|
nmake
|
|
cmake --install .
|
|
|
|
- name: Remove find_package(Boost)
|
|
shell: bash
|
|
run: sed -i 's/find_package(Boost.*//g' CMakeLists.txt
|
|
|
|
- name: Create Build Environment
|
|
run: cmake -E make_directory build
|
|
|
|
- name: Run CMake
|
|
working-directory: build
|
|
run: >
|
|
cmake ..
|
|
-DCMAKE_BUILD_TYPE=Release
|
|
-DCMAKE_PREFIX_PATH=c:\qt\6.2.3\msvc2019_64\lib\cmake
|
|
-DBUILD_WITH_QT6=ON
|
|
-DBUILD_WERROR=OFF
|
|
-DARCH=x86_64
|
|
-DENABLE_WIN32_CONSOLE=OFF
|
|
-DENABLE_DBUS=OFF
|
|
-DENABLE_LIBGPOD=OFF
|
|
-DENABLE_LIBMTP=OFF
|
|
-DUSE_TAGLIB=ON
|
|
-DPKG_CONFIG_EXECUTABLE=C:/gstreamer/1.0/msvc_x86_64/bin/pkg-config.exe
|
|
-DGNUTLS_LIBRARY=c:/gstreamer/1.0/msvc_x86_64/lib/gnutls.lib
|
|
-DGNUTLS_INCLUDE_DIR=c:/gstreamer/1.0/msvc_x86_64/include
|
|
-DGNUTLS_INCLUDE_DIRS=c:/gstreamer/1.0/msvc_x86_64/include
|
|
-DBoost_INCLUDE_DIR=c:/gstreamer/1.0/msvc_x86_64/include
|
|
-DBoost_INCLUDE_DIRS=c:/gstreamer/1.0/msvc_x86_64/include
|
|
-DProtobuf_LIBRARY=c:/gstreamer/1.0/msvc_x86_64/lib/libprotobuf.lib
|
|
-DProtobuf_INCLUDE_DIR=c:/gstreamer/1.0/msvc_x86_64/include
|
|
-DProtobuf_INCLUDE_DIRS=c:/gstreamer/1.0/msvc_x86_64/include
|
|
-DPROTOBUF_PROTOC_EXECUTABLE=c:/gstreamer/1.0/msvc_x86_64/bin/protoc.exe
|
|
-DSQLITE_INCLUDE_DIRS=c:/gstreamer/1.0/msvc_x86_64/include
|
|
-DSQLITE_LIBRARY_DIRS=c:/gstreamer/1.0/msvc_x86_64/lib
|
|
-DFFTW3_DIR=c:\gstreamer\1.0\msvc_x86_64
|
|
-DQTSPARKLE_INCLUDE_DIRS="${{github.workspace}}/qtsparkle/include"
|
|
|
|
- name: Copy qtsparkle header
|
|
working-directory: build
|
|
run: xcopy /s /y "${{github.workspace}}\qtsparkle\include"
|
|
|
|
- name: Run Make
|
|
env:
|
|
CL: "/MP"
|
|
working-directory: build
|
|
run: cmake --build . --config Release --parallel $(nproc)
|
|
|
|
- name: list files
|
|
working-directory: build
|
|
run: dir
|
|
|
|
- name: Copy executables
|
|
working-directory: build
|
|
run: copy release\*.exe .
|
|
|
|
- name: Copy extra binaries
|
|
working-directory: build
|
|
run: |
|
|
copy c:\qt\tools\openssl\win_x64\bin\libssl-1_1-x64.dll
|
|
copy c:\qt\tools\openssl\win_x64\bin\libcrypto-1_1-x64.dll
|
|
copy "${{github.workspace}}/sources/sqlite-autoconf-3370200/sqlite3.exe"
|
|
copy c:\gstreamer\1.0\msvc_x86_64\bin\soup-2.4-1.dll
|
|
copy c:\gstreamer\1.0\msvc_x86_64\bin\gst-launch-1.0.exe
|
|
copy c:\gstreamer\1.0\msvc_x86_64\bin\gst-discoverer-1.0.exe
|
|
|
|
- name: Create directories
|
|
working-directory: build
|
|
run: |
|
|
mkdir gio-modules
|
|
mkdir platforms
|
|
mkdir styles
|
|
mkdir tls
|
|
mkdir sqldrivers
|
|
mkdir imageformats
|
|
mkdir gstreamer-plugins
|
|
mkdir nsisplugins
|
|
|
|
- name: Copy GIO modules
|
|
working-directory: build
|
|
run: copy "${{github.workspace}}/sources/glib-networking-2.62.4/build/tls/gnutls/giognutls.dll" ./gio-modules/
|
|
|
|
- name: Copy Qt platform plugins
|
|
working-directory: build
|
|
run: copy C:\Qt\6.2.3\msvc2019_64\plugins\platforms\qwindows.dll .\platforms\
|
|
|
|
- name: Copy Qt styles
|
|
working-directory: build
|
|
run: copy C:\Qt\6.2.3\msvc2019_64\plugins\styles\qwindowsvistastyle.dll .\styles\
|
|
|
|
- name: Copy Qt TLS plugins
|
|
working-directory: build
|
|
run: copy C:\Qt\6.2.3\msvc2019_64\plugins\tls\*.dll .\tls\
|
|
|
|
- name: Copy Qt SQL drivers
|
|
working-directory: build
|
|
run: copy C:\Qt\6.2.3\msvc2019_64\plugins\sqldrivers\qsqlite.dll .\sqldrivers\
|
|
|
|
- name: Copy Qt imageformats plugins
|
|
working-directory: build
|
|
run: copy C:\Qt\6.2.3\msvc2019_64\plugins\imageformats\*.dll .\imageformats\
|
|
|
|
- name: Copy gstreamer plugins
|
|
working-directory: build
|
|
run: |
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstapp.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstcoreelements.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaudioconvert.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaudiofx.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaudiomixer.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaudioparsers.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaudiorate.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaudioresample.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaudiotestsrc.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstautodetect.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstplayback.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstvolume.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstspectrum.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstequalizer.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstreplaygain.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gsttypefindfunctions.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstgio.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstdirectsound.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstwasapi.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstwasapi2.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstapetag.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gsticydemux.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstid3demux.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gsttcp.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstudp.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstsoup.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstrtp.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstrtsp.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstflac.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstwavparse.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstwavpack.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstogg.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstvorbis.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstopus.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstopusparse.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstspeex.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstlame.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaiff.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstisomp4.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstasf.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstasfmux.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstlibav.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstdash.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstxingmux.dll .\gstreamer-plugins\
|
|
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstmpg123.dll .\gstreamer-plugins\
|
|
|
|
- name: Download copydlldeps.sh
|
|
shell: bash
|
|
working-directory: build
|
|
run: curl -O -L https://raw.githubusercontent.com/strawberrymusicplayer/strawberry-mxe/master/tools/copydlldeps.sh
|
|
|
|
- name: Copy dependencies
|
|
shell: bash
|
|
working-directory: build
|
|
run: >
|
|
./copydlldeps.sh
|
|
-c
|
|
-d .
|
|
-F .
|
|
-F ./platforms
|
|
-F ./styles
|
|
-F ./tls
|
|
-F ./sqldrivers
|
|
-F ./imageformats
|
|
-F ./gio-modules
|
|
-F ./gstreamer-plugins
|
|
-R /c/qt/6.2.3/msvc2019_64/bin
|
|
-R /c/gstreamer/1.0/msvc_x86_64
|
|
-R "${{github.workspace}}/qtsparkle/bin"
|
|
|
|
- name: Strip binaries
|
|
shell: bash
|
|
working-directory: build
|
|
run: find . -type f \( -iname \*.dll -o -iname \*.exe \) -exec strip {} \;
|
|
|
|
- name: Copy nsis files
|
|
working-directory: build
|
|
run: |
|
|
copy ..\dist\windows\*.nsi .
|
|
copy ..\dist\windows\*.nsh .
|
|
copy ..\dist\windows\*.ico .
|
|
|
|
- name: Copy COPYING license file
|
|
working-directory: build
|
|
run: copy ..\COPYING .
|
|
|
|
- name: list files
|
|
working-directory: build
|
|
run: dir
|
|
|
|
- name: Create nsis installer
|
|
working-directory: build
|
|
run: makensis strawberry.nsi
|
|
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: upload-windows
|
|
path: build/StrawberrySetup*.exe
|
|
|
|
|
|
upload-macos:
|
|
name: Upload macOS DMG
|
|
runs-on: ubuntu-latest
|
|
if: github.ref == 'refs/heads/master'
|
|
needs:
|
|
- build-macos-qt6
|
|
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
|
|
|
|
|
|
upload-windows:
|
|
name: Upload Windows Setup
|
|
runs-on: ubuntu-latest
|
|
if: github.ref == 'refs/heads/master'
|
|
needs:
|
|
- build-windows-msvc
|
|
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 'StrawberrySetup*.exe'); do
|
|
rsync -e "ssh -p 50220 -o StrictHostKeyChecking=no" -va $i travis@echoes.jkvinge.net:/home/travis/builds/windows/
|
|
done
|
|
|
|
|
|
build-freebsd:
|
|
name: Build FreeBSD
|
|
runs-on: macos-10.15
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Build FreeBSD
|
|
id: build-freebsd
|
|
uses: vmactions/freebsd-vm@v0.1.5
|
|
with:
|
|
usesh: true
|
|
mem: 4096
|
|
prepare: pkg install -y git cmake pkgconf gettext-tools boost-libs glib gnutls qt5-core qt5-concurrent qt5-network qt5-sql qt5-dbus qt5-gui qt5-widgets qt5-buildtools qt5-linguisttools qt5-qmake qt5-sqldrivers-sqlite3 qt5-testlib sqlite gstreamer1 gstreamer1-plugins chromaprint protobuf protobuf-c taglib libcdio libmtp gdk-pixbuf2 libgpod fftw3 googletest iconv
|
|
run: |
|
|
cmake -E make_directory build
|
|
cd build
|
|
cmake .. -DCMAKE_BUILD_TYPE=Debug
|
|
cmake --build . --config Debug --parallel 4
|
|
cd ..
|
|
rm -rf build
|