Merge pull request #389 from valbok/static #1316
This file contains 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: CI | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
jobs: | |
linux: | |
strategy: | |
matrix: | |
compiler: ['gcc-9'] | |
qt_version: ["5.15.2", "6.5.0"] | |
include: | |
- compiler: gcc-9 | |
packages: gcc-9 g++-9 | |
env: { 'CC': 'gcc-9', 'CXX': 'g++-9' } | |
- qt_version: "6.5.0" | |
qt_modules: "qtmultimedia" | |
qt_packages: "libxkbcommon-dev libgstreamer-plugins-base1.0-0 libgstreamer-gl1.0-0" | |
runs-on: ubuntu-latest | |
env: ${{ matrix.env }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install compiler and FFmpeg dependencies | |
run: | | |
sudo apt-get update && | |
sudo apt-get install -y ${{ matrix.packages }} ${{ matrix.qt_packages }} \ | |
libavcodec-dev \ | |
libavformat-dev \ | |
libavdevice-dev \ | |
libavfilter-dev \ | |
libavformat-dev \ | |
libavutil-dev \ | |
libswresample-dev \ | |
libswscale-dev \ | |
libva-x11-2 \ | |
libva-drm2 | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: ${{ matrix.qt_version }} | |
modules: ${{ matrix.qt_modules }} | |
- name: QMake Test | |
run: | | |
export QT_LOGGING_RULES="qt.QtAVPlayer.debug=true" | |
cd tests/auto/integration/qavdemuxer | |
qmake | |
make CC=$CC CXX=$CXX | |
./tst_qavdemuxer | |
cd ../qavplayer | |
qmake DEFINES+="QT_AVPLAYER_MULTIMEDIA" | |
make CC=$CC CXX=$CXX | |
./tst_qavplayer --platform minimal -maxwarnings 100000 | |
macos: | |
strategy: | |
matrix: | |
compiler: ['clang-9'] | |
include: | |
- compiler: clang-9 | |
packages: llvm@13 | |
env: { 'CC': 'clang', 'CXX': 'clang++', 'CXXFLAGS': '-DNS_FORMAT_ARGUMENT\(A\)= -fapplication-extension -std=c++17' } | |
runs-on: macos-latest | |
env: ${{ matrix.env }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
brew install ${{ matrix.packages }} ffmpeg qt@5 | |
- name: Set environment path | |
run: | | |
echo "/usr/local/opt/qt5/bin" >> $GITHUB_PATH | |
echo "/usr/local/Cellar/ffmpeg/6.0/include" >> $GITHUB_PATH | |
echo "/usr/local/opt/llvm@9/bin" >> $GITHUB_PATH | |
- name: QMake Test | |
run: | | |
export QT_LOGGING_RULES="qt.QtAVPlayer.debug=true" | |
cd tests/auto/integration/qavdemuxer | |
qmake INCLUDEPATH+="/usr/local/Cellar/ffmpeg/6.0/include" LIBS="-L/usr/local/Cellar/ffmpeg/6.0/lib" | |
make CC=$CC CXX=$CXX | |
tst_qavdemuxer.app/Contents/MacOS/tst_qavdemuxer | |
cd ../qavplayer | |
qmake DEFINES+="QT_AVPLAYER_MULTIMEDIA" INCLUDEPATH+="/usr/local/Cellar/ffmpeg/6.0/include" LIBS="-L/usr/local/Cellar/ffmpeg/6.0/lib" | |
make CC=$CC CXX=$CXX | |
tst_qavplayer.app/Contents/MacOS/tst_qavplayer --platform minimal -maxwarnings 100000 | |
windows: | |
strategy: | |
matrix: | |
qt_version: ["5.15.2"] | |
type: ["MSVC", "MINGW"] | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Init vs environment | |
if: ${{ matrix.type == 'MSVC' }} | |
uses: egor-tensin/vs-shell@v2 | |
with: | |
arch: x64 | |
- name: Install wget & unzip | |
run: | | |
choco install wget unzip xidel | |
- name: Install Qt | |
if: ${{ matrix.type == 'MINGW' }} | |
uses: jurplel/install-qt-action@v3 | |
with: | |
arch: win64_mingw81 | |
version: ${{ matrix.qt_version }} | |
- name: Install Qt | |
if: ${{ matrix.type == 'MSVC' }} | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: ${{ matrix.qt_version }} | |
- name: Install FFmpeg | |
shell: cmd | |
run: | | |
cd .. | |
xidel https://github.com/BtbN/FFmpeg-Builds/releases -e "//a[contains(@href, '-gpl-shared.zip')]/@href[1]" --silent > ffmpeg.url | |
xidel https://github.com/BtbN/FFmpeg-Builds/releases -e "(//a[contains(@href, '-gpl-shared.zip')])[1]/substring(., 0, string-length(.) - 3)" --silent > ffmpeg.name | |
set /P FFMPEG_URL=< ffmpeg.url | |
set /P FFMPEG_NAME=< ffmpeg.name | |
wget https://github.com%FFMPEG_URL% | |
unzip %FFMPEG_NAME%.zip | |
ren %FFMPEG_NAME% ffmpeg | |
dir ffmpeg | |
dir ffmpeg\include | |
dir ffmpeg\bin | |
SET FFMPEG=%CD%\ffmpeg | |
echo FFMPEG=%FFMPEG%>>%GITHUB_ENV% | |
echo PATH=%FFMPEG%\lib;%FFMPEG%\bin;%PATH%>>%GITHUB_ENV% | |
echo LIBRARY_PATH=%FFMPEG%\lib;%FFMPEG%\bin;%PATH%>>%GITHUB_ENV% | |
echo INCLUDE=%FFMPEG%\include;%INCLUDE%>>%GITHUB_ENV% | |
echo CPLUS_INCLUDE_PATH=%FFMPEG%\include;%CPLUS_INCLUDE_PATH%>>%GITHUB_ENV% | |
echo LIB=%FFMPEG%\lib;%FFMPEG%\bin;%LIB%>>%GITHUB_ENV% | |
- name: QMake Test | |
if: ${{ matrix.type == 'MSVC' }} | |
shell: cmd | |
run: | | |
set QT_LOGGING_RULES=qt.QtAVPlayer.debug=true | |
set QT_FORCE_STDERR_LOGGING=1 | |
set QT_ASSUME_STDERR_HAS_CONSOLE=1 | |
cd tests/auto/integration/qavdemuxer | |
qmake DEFINES+="QT_AVPLAYER_MULTIMEDIA" | |
nmake | |
release\tst_qavdemuxer.exe | |
cd ../qavplayer | |
cd qavplayer | |
qmake DEFINES+="QT_AVPLAYER_MULTIMEDIA" | |
nmake | |
release\tst_qavplayer.exe -maxwarnings 100000 | |
- name: QMake Test | |
if: ${{ matrix.type == 'MINGW' }} | |
shell: cmd | |
run: | | |
set QT_LOGGING_RULES=qt.QtAVPlayer.debug=true | |
set QT_FORCE_STDERR_LOGGING=1 | |
set QT_ASSUME_STDERR_HAS_CONSOLE=1 | |
cd tests/auto/integration/qavdemuxer | |
qmake DEFINES+="QT_AVPLAYER_MULTIMEDIA" | |
mingw32-make | |
release\tst_qavdemuxer.exe | |
cd ../qavplayer | |
qmake DEFINES+="QT_AVPLAYER_MULTIMEDIA" | |
mingw32-make | |
release\tst_qavplayer.exe -maxwarnings 100000 | |