1
0
mirror of https://github.com/strawberrymusicplayer/strawberry synced 2024-12-17 11:10:31 +01:00
strawberry-audio-player-win.../.github/workflows/ccpp.yml
2022-07-17 01:16:06 +02:00

2238 lines
82 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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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/KDE:/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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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_lp154_qt5:
name: Build openSUSE Leap 15.4 Qt 5
runs-on: ubuntu-latest
container:
image: opensuse/leap:15.4
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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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
- 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_lp154_qt6:
name: Build openSUSE Leap 15.4 Qt 6
runs-on: ubuntu-latest
container:
image: opensuse/leap:15.4
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
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
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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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
- 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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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_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
which
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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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_36:
name: Build Fedora 36
runs-on: ubuntu-latest
container:
image: fedora:36
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
which
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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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_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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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_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
g++
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
qttools5-dev
qttools5-dev-tools
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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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
g++
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
qttools5-dev
qttools5-dev-tools
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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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
g++
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
qt6-base-dev
qt6-base-dev-tools
qt6-tools-dev
qt6-tools-dev-tools
qt6-l10n-tools
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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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
g++
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
qttools5-dev
qttools5-dev-tools
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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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
g++
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
qttools5-dev
qttools5-dev-tools
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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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
g++
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
qttools5-dev
qttools5-dev-tools
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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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
g++
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
qt6-base-dev
qt6-base-dev-tools
qt6-tools-dev
qt6-tools-dev-tools
qt6-l10n-tools
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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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_kinetic:
name: Build Ubuntu Kinetic
runs-on: ubuntu-latest
container:
image: ubuntu:kinetic
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
g++
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
qt6-base-dev
qt6-base-dev-tools
qt6-tools-dev
qt6-tools-dev-tools
qt6-l10n-tools
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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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:
name: Build macOS
runs-on: macos-10.15
steps:
- uses: actions/checkout@v1.2.0
- name: Install macports
run: |
wget https://github.com/macports/macports-base/releases/download/v2.7.1/MacPorts-2.7.1-10.15-Catalina.pkg
sudo installer -pkg ./MacPorts-2.7.1-10.15-Catalina.pkg -target /
- name: Uninstall homebrew
run: |
curl -sLO https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh
chmod +x ./uninstall.sh
sudo ./uninstall.sh --force
- name: Update macports
run: sudo /opt/local/bin/port -v selfupdate
- name: Install packages
run: sudo /opt/local/bin/port -N -p install gsed wget cmake xz
- name: Install create-dmg
run: |
git clone https://github.com/create-dmg/create-dmg.git
cd create-dmg
make install
- name: Get macOS dependencies
shell: bash
run: |
cd ../../
mkdir -p strawberry-macos-dependencies/strawberry-macos-dependencies
cd strawberry-macos-dependencies/strawberry-macos-dependencies
/opt/local/bin/wget https://github.com/strawberrymusicplayer/strawberry-macos-dependencies/releases/download/latest/strawberry-macos-catalina-dependencies.tar.xz
tar -xf strawberry-macos-catalina-dependencies.tar.xz
- name: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- name: Create Build Environment
shell: bash
run: |
export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH"
cmake -E make_directory build
- name: Remove -Wundef
shell: bash
run: /opt/local/bin/gsed -i '/-Wundef/d' CMakeLists.txt
- name: Configure CMake
shell: bash
env:
MACOSX_DEPLOYMENT_TARGET: 10.15
CFLAGS: -I${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/include
CXXFLAGS: -I${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/include
LDFLAGS: -L${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib -Wl,-rpath,${{github.workspace}}/strawberry-macos-dependencies/usr/lib
PKG_CONFIG_EXECUTABLE: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin/pkg-config
PKG_CONFIG_PATH: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/pkgconfig
working-directory: build
run: |
pwd
export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH"
cmake .. -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/cmake \
-DBUILD_WITH_QT6=ON \
-DBUILD_WERROR=OFF \
-DUSE_BUNDLE=ON \
-DBoost_INCLUDE_DIR=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/include \
-DProtobuf_INCLUDE_DIR=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/include \
-DProtobuf_INCLUDE_DIRS=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/include \
-DProtobuf_LIBRARY=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/libprotobuf.dylib \
-DProtobuf_PROTOC_EXECUTABLE=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin/protoc \
-DFFTW3_DIR=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr
- name: Build
working-directory: build
shell: bash
run: |
export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH"
cmake --build . --config Release --parallel 4
- name: Fix macdeployqt and macdeploycheck
working-directory: build
shell: bash
run: |
install_name_tool -change "@rpath/QtCore.framework/Versions/A/QtCore" "/Users/runner/work/strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/QtCore.framework/Versions/A/QtCore" /Users/runner/work/strawberry/strawberry/build/3rdparty/macdeployqt/macdeployqt
install_name_tool -change "@rpath/QtCore.framework/Versions/A/QtCore" "/Users/runner/work/strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/QtCore.framework/Versions/A/QtCore" /Users/runner/work/strawberry/strawberry/build/ext/macdeploycheck/macdeploycheck
- name: Install
working-directory: build
shell: bash
run: |
export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH"
make install
- name: Deploy
working-directory: build
shell: bash
env:
GIO_EXTRA_MODULES: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/gio/modules
GST_PLUGIN_SCANNER: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/libexec/gstreamer-1.0/gst-plugin-scanner
GST_PLUGIN_PATH: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/gstreamer-1.0
run: |
export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH"
make deploy
- name: Deploy check
working-directory: build
shell: bash
run: |
export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH"
make deploycheck
- name: Create DMG
working-directory: build
shell: bash
env:
GIO_EXTRA_MODULES: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/gio/modules
GST_PLUGIN_SCANNER: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/libexec/gstreamer-1.0/gst-plugin-scanner
GST_PLUGIN_PATH: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/gstreamer-1.0
run: |
export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH"
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: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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,libgioopenssl.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/{qschannelbackend.dll,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/libgstaes.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/libgstapetag.dll
/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/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/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/libgstbs2b.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/libgstcoreelements.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/libgstdirectsound.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/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/libgstfdkaac.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/libgstgio.dll
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgsthls.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/libgstisomp4.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/libgstlibav.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/libgstmusepack.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/libgstopenmpt.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/libgstpbtypes.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/libgstremovesilence.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/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/libgstsoup.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/libgstspeex.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/libgsttypefindfunctions.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/libgstvolume.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/libgstwasapi.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/libgstwavparse.dll
/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstxingmux.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,libnghttp2.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-release:
name: Build Windows MSVC Release
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: Delete conflicting files
shell: bash
run: |
rm -f /c/programdata/chocolatey/bin/{addr2line.exe,ar.exe,as.exe,c++.exe,c++filt.exe,cc1.exe,cc1plus.exe,cpp.exe,g++.exe,gcc-ar.exe,gcc-nm.exe,gcc-ranlib.exe,gcc.exe,gdb.exe,gfortran.exe,ld.bfd.exe,ld.exe,ld.gold.exe,nm.exe,ranlib.exe,readelf.exe,windres.exe,x86_64-w64-mingw32-c++.exe,x86_64-w64-mingw32-g++.exe,x86_64-w64-mingw32-gcc-8.1.0.exe,x86_64-w64-mingw32-gcc-ar.exe,x86_64-w64-mingw32-gcc-nm.exe,x86_64-w64-mingw32-gcc-ranlib.exe,x86_64-w64-mingw32-gcc.exe,x86_64-w64-mingw32-gfortran.exe}
rm -f /c/strawberry/c/bin/{addr2line.exe,ar.exe,as.exe,c++.exe,c++filt.exe,cpp.exe,g++.exe,gcc-ar.exe,gcc-nm.exe,gcc-ranlib.exe,gcc.exe,ld.exe,nm.exe,ranlib.exe,readelf.exe,widl.exe,windmc.exe,windres.exe,x86_64-w64-mingw32-c++.exe,x86_64-w64-mingw32-g++.exe,x86_64-w64-mingw32-gcc-8.3.0.exe,x86_64-w64-mingw32-gcc-ar.exe,x86_64-w64-mingw32-gcc-nm.exe,x86_64-w64-mingw32-gcc-ranlib.exe,x86_64-w64-mingw32-gcc.exe,x86_64-w64-mingw32-gfortran.exe}
- name: Download Windows MSVC dependencies
uses: suisei-cn/actions-download-file@v1
with:
url: "Windows MSVC dependencies [this](https://github.com/strawberrymusicplayer/strawberry-msvc-dependencies/releases/download/latest/strawberry-msvc-dependencies-release.tar.xz)!"
target: downloads/
auto-match: true
- 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: Download Registry plugin for NSIS
uses: suisei-cn/actions-download-file@v1
with:
url: "Registry [this](https://nsis.sourceforge.io/mediawiki/images/4/47/Registry.zip)!"
target: downloads/
auto-match: true
- name: Extract NSIS Registry plugin
run: 7z x -o"${{github.workspace}}/NSIS_Plugins" "${{github.workspace}}/downloads/Registry.zip"
- name: Download Inetc plugin for NSIS
uses: suisei-cn/actions-download-file@v1
with:
url: "Inetc [this](https://nsis.sourceforge.io/mediawiki/images/c/c9/Inetc.zip)!"
target: downloads/
auto-match: true
- name: Extract NSIS Inetc plugin
run: 7z x -o"${{github.workspace}}/NSIS_Plugins" "${{github.workspace}}/downloads/Inetc.zip"
- name: Install NSIS plugins
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/"
copy "${{github.workspace}}/NSIS_Plugins/Desktop/Plugin/registry.dll" "C:/Program Files (x86)/NSIS/Plugins/"
copy "${{github.workspace}}/NSIS_Plugins/Desktop/Plugin/registry.dll" "C:/Program Files (x86)/NSIS/Plugins/x86-unicode/"
copy "${{github.workspace}}/NSIS_Plugins/Plugins/x86-unicode/INetC.dll" "C:/Program Files (x86)/NSIS/Plugins/x86-unicode/"
- name: Extract Windows MSVC dependencies
shell: bash
run: |
tar -xf /d/a/strawberry/strawberry/downloads/strawberry-msvc-dependencies-release.tar.xz
mv c/msvc_x86_64 /c/
- name: Update PATH
run: echo "c:\msvc_x86_64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- 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:/msvc_x86_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:/msvc_x86_64/bin/pkg-config.exe"
- name: Run Make
env:
CL: "/MP"
working-directory: build
run: cmake --build . --config Release --parallel 4
- 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:\msvc_x86_64\bin\libssl-3-x64.dll
copy c:\msvc_x86_64\bin\libcrypto-3-x64.dll
copy c:\msvc_x86_64\bin\soup-2.4-1.dll
copy c:\msvc_x86_64\bin\gst-launch-1.0.exe
copy c:\msvc_x86_64\bin\gst-discoverer-1.0.exe
copy c:\msvc_x86_64\bin\sqlite3.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 c:\msvc_x86_64\lib\gio\modules\*.dll .\gio-modules\
- name: Copy Qt platform plugins
working-directory: build
run: copy c:\msvc_x86_64\plugins\platforms\qwindows.dll .\platforms\
- name: Copy Qt styles
working-directory: build
run: copy c:\msvc_x86_64\plugins\styles\qwindowsvistastyle.dll .\styles\
- name: Copy Qt TLS plugins
working-directory: build
run: copy c:\msvc_x86_64\plugins\tls\*.dll .\tls\
- name: Copy Qt SQL drivers
working-directory: build
run: copy c:\msvc_x86_64\plugins\sqldrivers\qsqlite.dll .\sqldrivers\
- name: Copy Qt imageformats plugins
working-directory: build
run: copy c:\msvc_x86_64\plugins\imageformats\*.dll .\imageformats\
- name: Copy gstreamer plugins
working-directory: build
run: |
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaiff.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstapetag.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstapp.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstasf.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstasfmux.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudioconvert.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiofx.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiomixer.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudioparsers.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiorate.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudioresample.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiotestsrc.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstautodetect.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstbs2b.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstcoreelements.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstdash.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstdirectsound.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstequalizer.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstfaac.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstfaad.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstfdkaac.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstflac.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstgio.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gsthls.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gsticydemux.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstid3demux.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstisomp4.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstlame.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstmpg123.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstmusepack.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstogg.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstopenmpt.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstopus.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstopusparse.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstplayback.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstremovesilence.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstreplaygain.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstrtp.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstrtsp.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstspeex.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstsoup.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstspectrum.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gsttcp.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gsttypefindfunctions.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstudp.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstvolume.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstvorbis.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwasapi.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwasapi2.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwavpack.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwavparse.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstxingmux.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstlibav.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/msvc_x86_64/bin
- 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
build-windows-msvc-debug:
name: Build Windows MSVC Debug
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: Delete conflicting files
shell: bash
run: |
rm -f /c/programdata/chocolatey/bin/{addr2line.exe,ar.exe,as.exe,c++.exe,c++filt.exe,cc1.exe,cc1plus.exe,cpp.exe,g++.exe,gcc-ar.exe,gcc-nm.exe,gcc-ranlib.exe,gcc.exe,gdb.exe,gfortran.exe,ld.bfd.exe,ld.exe,ld.gold.exe,nm.exe,ranlib.exe,readelf.exe,windres.exe,x86_64-w64-mingw32-c++.exe,x86_64-w64-mingw32-g++.exe,x86_64-w64-mingw32-gcc-8.1.0.exe,x86_64-w64-mingw32-gcc-ar.exe,x86_64-w64-mingw32-gcc-nm.exe,x86_64-w64-mingw32-gcc-ranlib.exe,x86_64-w64-mingw32-gcc.exe,x86_64-w64-mingw32-gfortran.exe}
rm -f /c/strawberry/c/bin/{addr2line.exe,ar.exe,as.exe,c++.exe,c++filt.exe,cpp.exe,g++.exe,gcc-ar.exe,gcc-nm.exe,gcc-ranlib.exe,gcc.exe,ld.exe,nm.exe,ranlib.exe,readelf.exe,widl.exe,windmc.exe,windres.exe,x86_64-w64-mingw32-c++.exe,x86_64-w64-mingw32-g++.exe,x86_64-w64-mingw32-gcc-8.3.0.exe,x86_64-w64-mingw32-gcc-ar.exe,x86_64-w64-mingw32-gcc-nm.exe,x86_64-w64-mingw32-gcc-ranlib.exe,x86_64-w64-mingw32-gcc.exe,x86_64-w64-mingw32-gfortran.exe}
- name: Download Windows MSVC dependencies
uses: suisei-cn/actions-download-file@v1
with:
url: "Windows MSVC dependencies [this](https://github.com/strawberrymusicplayer/strawberry-msvc-dependencies/releases/download/latest/strawberry-msvc-dependencies-debug.tar.xz)!"
target: downloads/
auto-match: true
- 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: Download Registry plugin for NSIS
uses: suisei-cn/actions-download-file@v1
with:
url: "Registry [this](https://nsis.sourceforge.io/mediawiki/images/4/47/Registry.zip)!"
target: downloads/
auto-match: true
- name: Extract NSIS Registry plugin
run: 7z x -o"${{github.workspace}}/NSIS_Plugins" "${{github.workspace}}/downloads/Registry.zip"
- name: Download Inetc plugin for NSIS
uses: suisei-cn/actions-download-file@v1
with:
url: "Inetc [this](https://nsis.sourceforge.io/mediawiki/images/c/c9/Inetc.zip)!"
target: downloads/
auto-match: true
- name: Extract NSIS Inetc plugin
run: 7z x -o"${{github.workspace}}/NSIS_Plugins" "${{github.workspace}}/downloads/Inetc.zip"
- name: Install NSIS plugins
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/"
copy "${{github.workspace}}/NSIS_Plugins/Desktop/Plugin/registry.dll" "C:/Program Files (x86)/NSIS/Plugins/"
copy "${{github.workspace}}/NSIS_Plugins/Desktop/Plugin/registry.dll" "C:/Program Files (x86)/NSIS/Plugins/x86-unicode/"
copy "${{github.workspace}}/NSIS_Plugins/Plugins/x86-unicode/INetC.dll" "C:/Program Files (x86)/NSIS/Plugins/x86-unicode/"
- name: Extract Windows MSVC dependencies
shell: bash
run: |
tar -xf /d/a/strawberry/strawberry//downloads/strawberry-msvc-dependencies-debug.tar.xz
mv c/msvc_x86_64 /c/
- name: Update PATH
run: echo "c:\msvc_x86_64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Add safe git directory
shell: bash
run: git config --global --add safe.directory /__w/strawberry/strawberry
- name: Create Build Environment
run: cmake -E make_directory build
- name: Run CMake
working-directory: build
run: >
cmake ..
-DCMAKE_BUILD_TYPE="Debug"
-DCMAKE_PREFIX_PATH="c:/msvc_x86_64/lib/cmake"
-DBUILD_WITH_QT6=ON
-DBUILD_WERROR=OFF
-DARCH=x86_64
-DENABLE_WIN32_CONSOLE=ON
-DENABLE_DBUS=OFF
-DENABLE_LIBGPOD=OFF
-DENABLE_LIBMTP=OFF
-DUSE_TAGLIB=ON
-DPKG_CONFIG_EXECUTABLE="c:/msvc_x86_64/bin/pkg-config.exe"
- name: Run Make
env:
CL: "/MP"
working-directory: build
run: cmake --build . --config Debug --parallel 4
- name: list files
working-directory: build
run: dir
- name: Copy executables
working-directory: build
run: copy debug\*.exe .
- name: Copy extra binaries
working-directory: build
run: |
copy c:\msvc_x86_64\bin\libssl-3-x64.dll
copy c:\msvc_x86_64\bin\libcrypto-3-x64.dll
copy c:\msvc_x86_64\bin\soup-2.4-1.dll
copy c:\msvc_x86_64\bin\gst-launch-1.0.exe
copy c:\msvc_x86_64\bin\gst-discoverer-1.0.exe
copy c:\msvc_x86_64\bin\sqlite3.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 c:\msvc_x86_64\lib\gio\modules\*.dll .\gio-modules\
- name: Copy Qt platform plugins
working-directory: build
run: copy c:\msvc_x86_64\plugins\platforms\qwindowsd.dll .\platforms\
- name: Copy Qt styles
working-directory: build
run: copy c:\msvc_x86_64\plugins\styles\qwindowsvistastyled.dll .\styles\
- name: Copy Qt TLS plugins
working-directory: build
run: copy c:\msvc_x86_64\plugins\tls\*.dll .\tls\
- name: Copy Qt SQL drivers
working-directory: build
run: copy c:\msvc_x86_64\plugins\sqldrivers\qsqlited.dll .\sqldrivers\
- name: Copy Qt imageformats plugins
working-directory: build
run: copy c:\msvc_x86_64\plugins\imageformats\*.dll .\imageformats\
- name: Copy gstreamer plugins
working-directory: build
run: |
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaiff.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstapetag.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstapp.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstasf.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstasfmux.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudioconvert.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiofx.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiomixer.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudioparsers.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiorate.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudioresample.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiotestsrc.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstautodetect.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstbs2b.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstcoreelements.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstdash.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstdirectsound.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstequalizer.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstfaac.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstfaad.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstfdkaac.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstflac.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstgio.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gsthls.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gsticydemux.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstid3demux.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstisomp4.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstlame.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstmpg123.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstmusepack.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstogg.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstopenmpt.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstopus.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstopusparse.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstplayback.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstremovesilence.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstreplaygain.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstrtp.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstrtsp.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstspeex.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstsoup.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstspectrum.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gsttcp.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gsttypefindfunctions.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstudp.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstvolume.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstvorbis.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwasapi.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwasapi2.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwavpack.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwavparse.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstxingmux.dll .\gstreamer-plugins\
copy c:\msvc_x86_64\lib\gstreamer-1.0\gstlibav.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/msvc_x86_64/bin
- 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
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-release
- build-windows-msvc-debug
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: |
git config --global --add safe.directory /__w/strawberry/strawberry
cmake -E make_directory build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug
cmake --build . --config Debug --parallel 4
cd ..
rm -rf build