Fix Qt6 compatibility #273
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Checks | |
on: [push, pull_request] | |
jobs: | |
unix: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
env: | |
PYTHONPATH: /usr/local/lib/python2.7:/usr/local/lib/python2.7/dist-packages:/usr/local/lib/python2.7/site-packages | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- name: Dependencies | |
run: | | |
if [ "$RUNNER_OS" == "Linux" ]; then | |
sudo apt-get update | |
sudo apt-get install -y zlib1g-dev libxml2-dev libxslt-dev libcurl4-gnutls-dev libsqlite3-dev libjansson-dev libevent-dev libxml2-utils qtbase5-dev qtwebengine5-dev qt5-qmake xmlstarlet ffmpeg sshpass | |
sudo curl -L http://stahlworks.com/dev/sfk/sfk-linux-64.exe -o /usr/local/bin/sfk | |
sudo chmod +x /usr/local/bin/sfk | |
pip --disable-pip-version-check install git+https://github.com/vi/mkvparse.git | |
fi | |
if [ "$RUNNER_OS" == "macOS" ]; then | |
brew install libtool automake libxslt jansson qt@5 sfk xmlstarlet ffmpeg | |
sudo pip --disable-pip-version-check install --prefix /usr/local git+https://github.com/vi/mkvparse.git | |
fi | |
- name: Get ZenLib info | |
id: zenlib-info | |
run: | | |
echo "hash=$(git ls-remote https://github.com/MediaArea/ZenLib.git HEAD | cut -f1)" >> $GITHUB_OUTPUT | |
echo "path=$(dirname $PWD)/ZenLib" >> $GITHUB_OUTPUT | |
- name: ZenLib cache | |
id: zenlib-cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.zenlib-info.outputs.path }} | |
key: ${{ runner.os }}-ZenLib-${{ steps.zenlib-info.outputs.hash }} | |
- name: ZenLib | |
if: steps.zenlib-cache.outputs.cache-hit != 'true' | |
run: | | |
git -C .. clone --depth=1 https://github.com/MediaArea/ZenLib.git | |
pushd ../ZenLib/Project/GNU/Library | |
autoreconf -if | |
./configure --enable-static | |
make | |
popd | |
- name: Get MediaInfoLib info | |
id: mediainfolib-info | |
run: | | |
echo "hash=$(git ls-remote https://github.com/MediaArea/MediaInfoLib.git HEAD | cut -f1)" >> $GITHUB_OUTPUT | |
echo "path=$(dirname $PWD)/MediaInfoLib" >> $GITHUB_OUTPUT | |
- name: MediaInfoLib cache | |
id: mediainfolib-cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.mediainfolib-info.outputs.path }} | |
key: ${{ runner.os }}-MediaInfoLib-${{ steps.mediainfolib-info.outputs.hash }} | |
- name: MediaInfoLib | |
if: steps.mediainfolib-cache.outputs.cache-hit != 'true' | |
run: | | |
git -C .. clone --depth=1 https://github.com/MediaArea/MediaInfoLib.git | |
pushd ../MediaInfoLib/Project/GNU/Library | |
autoreconf -if | |
./configure --enable-static | |
make | |
popd | |
- name: Configure | |
run: | | |
cd Project/GNU/CLI | |
autoreconf -if | |
./configure | |
- name: Build | |
run: | | |
cd Project/GNU/CLI | |
make | |
- name: Check files | |
run: | | |
cd Project/GNU/CLI | |
make clone_sample_files | |
- name: Check | |
run: | | |
cd Project/GNU/CLI | |
make check | |
- name: Configure GUI | |
run: | | |
cd Project/Qt | |
export PATH=/opt/homebrew/opt/qt@5/bin:$PATH | |
./prepare CONFIG+=c++11 -after QMAKE_MACOSX_DEPLOYMENT_TARGET=10.9 QMAKE_LFLAGS-=-Wl,-ld_classic | |
- name: Build GUI | |
run: | | |
cd Project/Qt | |
export PATH=/usr/local/opt/qt/bin:$PATH | |
make | |
windows: | |
strategy: | |
matrix: | |
include: | |
- arch: Win32 | |
qt_ver: 5.15 | |
qt_arch: win32_msvc2019 | |
- arch: x64 | |
qt_ver: 5.15 | |
qt_arch: win64_msvc2019_64 | |
fail-fast: false | |
name: Windows (${{ matrix.arch }}) | |
runs-on: windows-latest | |
steps: | |
- name: Set up Qt | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: ${{ matrix.qt_ver }} | |
arch: ${{ matrix.qt_arch }} | |
modules: qtwebengine | |
- name: Get zlib info | |
id: zlib-info | |
run: | | |
('hash=' + ((git ls-remote https://github.com/MediaArea/zlib.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append | |
('path=' + (Get-Location) + '\zlib') | Out-File -FilePath $env:GITHUB_OUTPUT -Append | |
- name: zlib cache | |
id: zlib-cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.zlib-info.outputs.path }} | |
key: windows-${{ matrix.arch }}-zlib-${{ steps.zlib-info.outputs.hash }} | |
- name: Checkout zlib | |
if: steps.zlib-cache.outputs.cache-hit != 'true' | |
uses: actions/checkout@v4 | |
with: | |
repository: MediaArea/zlib | |
path: zlib | |
- name: Get libxml2 info | |
id: libxml2-info | |
run: | | |
('hash=' + ((git ls-remote https://github.com/MediaArea/libxml2.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append | |
('path=' + (Get-Location) + '\libxml2') | Out-File -FilePath $env:GITHUB_OUTPUT -Append | |
- name: libxml2 cache | |
id: libxml2-cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.libxml2-info.outputs.path }} | |
key: windows-${{ matrix.arch }}-libxml2-${{ steps.libxml2-info.outputs.hash }} | |
- name: Checkout libxml2 | |
if: steps.libxml2-cache.outputs.cache-hit != 'true' | |
uses: actions/checkout@v4 | |
with: | |
repository: MediaArea/libxml2 | |
path: libxml2 | |
- name: Get libxslt info | |
id: libxslt-info | |
run: | | |
('hash=' + ((git ls-remote https://github.com/MediaArea/libxslt.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append | |
('path=' + (Get-Location) + '\libxslt') | Out-File -FilePath $env:GITHUB_OUTPUT -Append | |
- name: libxslt cache | |
id: libxslt-cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.libxslt-info.outputs.path }} | |
key: windows-${{ matrix.arch }}-libxslt-${{ steps.libxslt-info.outputs.hash }} | |
- name: Checkout libxslt | |
if: steps.libxslt-cache.outputs.cache-hit != 'true' | |
uses: actions/checkout@v4 | |
with: | |
repository: MediaArea/libxslt | |
path: libxslt | |
- name: Get libevent info | |
id: libevent-info | |
run: | | |
('hash=' + ((git ls-remote https://github.com/MediaArea/libevent.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append | |
('path=' + (Get-Location) + '\libevent') | Out-File -FilePath $env:GITHUB_OUTPUT -Append | |
- name: libevent cache | |
id: libevent-cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.libevent-info.outputs.path }} | |
key: windows-${{ matrix.arch }}-libevent-${{ steps.libevent-info.outputs.hash }} | |
- name: Checkout libevent | |
if: steps.libevent-cache.outputs.cache-hit != 'true' | |
uses: actions/checkout@v4 | |
with: | |
repository: MediaArea/libevent | |
path: libevent | |
- name: Get jansson info | |
id: jansson-info | |
run: | | |
('hash=' + ((git ls-remote https://github.com/MediaArea/jansson.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append | |
('path=' + (Get-Location) + '\jansson') | Out-File -FilePath $env:GITHUB_OUTPUT -Append | |
- name: jansson cache | |
id: jansson-cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.jansson-info.outputs.path }} | |
key: windows-${{ matrix.arch }}-jansson-${{ steps.jansson-info.outputs.hash }} | |
- name: Checkout jansson | |
if: steps.jansson-cache.outputs.cache-hit != 'true' | |
uses: actions/checkout@v4 | |
with: | |
repository: MediaArea/jansson | |
path: jansson | |
- name: Get ZenLib info | |
id: zenlib-info | |
run: | | |
('hash=' + ((git ls-remote https://github.com/MediaArea/ZenLib.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append | |
('path=' + (Get-Location) + '\ZenLib') | Out-File -FilePath $env:GITHUB_OUTPUT -Append | |
- name: ZenLib cache | |
id: zenlib-cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.zenlib-info.outputs.path }} | |
key: windows-${{ matrix.arch }}-zenlib-${{ steps.zenlib-info.outputs.hash }} | |
- name: Checkout ZenLib | |
if: steps.zenlib-cache.outputs.cache-hit != 'true' | |
uses: actions/checkout@v4 | |
with: | |
repository: MediaArea/ZenLib | |
path: ZenLib | |
- name: Get MediaInfoLib info | |
id: mediainfolib-info | |
run: | | |
('hash=' + ((git ls-remote https://github.com/MediaArea/MediaInfoLib.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append | |
('path=' + (Get-Location) + '\MediaInfoLib') | Out-File -FilePath $env:GITHUB_OUTPUT -Append | |
- name: MediaInfoLib cache | |
id: mediainfolib-cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.mediainfolib-info.outputs.path }} | |
key: windows-${{ matrix.arch }}-mediainfolib-${{ steps.mediainfolib-info.outputs.hash }} | |
- name: Checkout MediaInfoLib | |
if: steps.mediainfolib-cache.outputs.cache-hit != 'true' | |
uses: actions/checkout@v4 | |
with: | |
repository: MediaArea/MediaInfoLib | |
path: MediaInfoLib | |
- name: Checkout MediaConch | |
uses: actions/checkout@v4 | |
with: | |
path: MediaConch | |
- name: Add MSBuild to PATH | |
uses: microsoft/setup-msbuild@v2 | |
with: | |
msbuild-architecture: x64 | |
- name: Build | |
run: | | |
$Env:IncludePath="$Env:QT_ROOT_DIR\include\QtGui;$Env:QT_ROOT_DIR\include\QtWidgets;$Env:QT_ROOT_DIR\include\QtCore;$Env:QT_ROOT_DIR\include\QtWebEngine;$Env:QT_ROOT_DIR\include\QtWebEngineWidgets;$Env:QT_ROOT_DIR\include\QtWebEngineCore;$Env:QT_ROOT_DIR\include\QtWebChannel;$Env:QT_ROOT_DIR\include;$Env:IncludePath" | |
$Env:LINK="/LIBPATH:$Env:QT_ROOT_DIR\lib" | |
MSBuild /Verbosity:Quiet /p:Configuration=Release`;Platform=${{ matrix.arch }} MediaConch\Project\MSVC2022\MediaConch.sln |