Skip to content

Merge pull request #809 from MediaArea/master #640

Merge pull request #809 from MediaArea/master

Merge pull request #809 from MediaArea/master #640

Workflow file for this run

name: qctools
on: [push, pull_request]
jobs:
build-macos-brew:
strategy:
matrix:
compiler: ['clang-9']
include:
- compiler: clang-9
packages: llvm@13
env: { 'CC': 'clang', 'CXX': 'clang++' }
runs-on: macos-latest
env: ${{ matrix.env }}
steps:
- uses: actions/checkout@v2
with:
fetch: 1
- name: Checkout submodules
shell: bash
run: |
GIT_PATH=https://github.com/.extraheader
AUTH_HEADER="$(git config --local --get http.$GIT_PATH)"
git submodule sync --recursive
git -c "http.extraheader=$AUTH_HEADER" \
-c protocol.version=2 \
submodule update --init --force --recursive --depth=1
- name: Install dependencies
run: |
brew install ${{ matrix.packages }} pkg-config ffmpeg
- name: Install qwt-qt5
run: |
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/56cd02e96876d1fb5b9ae951d605585fe8d614de/Formula/qwt.rb
brew install ./qwt.rb
- name: Set Qt5 environment path
run: |
echo "/usr/local/opt/qt5/bin" >> $GITHUB_PATH
- name: Build QCTools
env:
USE_BREW: true
run: |
cd Project/QtCreator
mkdir build
cd build
qmake ..
make CC=$CC CXX=$CXX -j4
build-macos-brew-Qt6:
strategy:
matrix:
compiler: ['clang-9']
include:
- compiler: clang-9
packages: llvm@9
env: { 'CC': 'clang-9', 'CXX': 'clang++-9', 'HOMEBREW_NO_INSTALL_CLEANUP': '1', 'HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK': '1' }
- qt_version: "6.3.0"
qt_modules: "qtmultimedia"
runs-on: macos-latest
env: ${{ matrix.env }}
steps:
- uses: actions/checkout@v2
with:
fetch: 1
- name: Checkout submodules
shell: bash
run: |
GIT_PATH=https://github.com/.extraheader
AUTH_HEADER="$(git config --local --get http.$GIT_PATH)"
git submodule sync --recursive
git -c "http.extraheader=$AUTH_HEADER" \
-c protocol.version=2 \
submodule update --init --force --recursive --depth=1
- name: Install dependencies
run: |
brew install ${{ matrix.packages }} pkg-config ffmpeg
- name: Install Qt6
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt_version }}
modules: ${{ matrix.qt_modules }}
- name: Install qwt
run: |
brew install --ignore-dependencies qwt
- name: Set Qt6 environment path
run: |
echo "/usr/local/opt/qt6/bin" >> $GITHUB_PATH
- name: Build QCTools
env:
USE_BREW: true
run: |
cd Project/QtCreator
mkdir build
cd build
qmake ..
make -j4
build-macos-no-brew:
strategy:
matrix:
compiler: ['clang-9']
include:
- compiler: clang-9
packages: llvm@13
env: { 'CC': 'clang', 'CXX': 'clang++' }
runs-on: macos-latest
env: ${{ matrix.env }}
steps:
- uses: actions/checkout@v2
with:
fetch: 1
- name: Checkout submodules
shell: bash
run: |
GIT_PATH=https://github.com/.extraheader
AUTH_HEADER="$(git config --local --get http.$GIT_PATH)"
git submodule sync --recursive
git -c "http.extraheader=$AUTH_HEADER" \
-c protocol.version=2 \
submodule update --init --force --recursive --depth=1
- name: Install dependencies
run: |
brew install ${{ matrix.packages }} nasm qt@5
- name: Set Qt5 environment path
run: |
echo "/usr/local/opt/qt5/bin" >> $GITHUB_PATH
- name: Build qwt
run: |
git clone --branch qwt-6.2 --depth 1 https://git.code.sf.net/p/qwt/git ../qwt
cd ../qwt
qmake -r
make -j4
- name: Build FFmpeg
run: |
git clone --depth 1 --branch n5.1 https://github.com/FFmpeg/FFmpeg ../ffmpeg
cd ../ffmpeg
./configure --enable-gpl \
--enable-static \
--disable-shared \
--disable-autodetect \
--disable-securetransport \
--disable-videotoolbox \
--disable-doc \
--disable-ffplay \
--disable-ffprobe \
--disable-debug
make -j12
- name: Build QCTools
env:
USE_BREW: false
run: |
cd Project/QtCreator
mkdir build
cd build
qmake ..
make CC=$CC CXX=$CXX -j4
build-macos-no-brew-Qt6:
strategy:
matrix:
compiler: ['clang-9']
include:
- compiler: clang-9
packages: llvm@9
env: { 'CC': 'clang-9', 'CXX': 'clang++-9', 'HOMEBREW_NO_INSTALL_CLEANUP': '1', 'HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK': '1' }
- qt_version: "6.3.0"
qt_modules: "qtmultimedia"
runs-on: macos-latest
env: ${{ matrix.env }}
steps:
- uses: actions/checkout@v2
with:
fetch: 1
- name: Checkout submodules
shell: bash
run: |
GIT_PATH=https://github.com/.extraheader
AUTH_HEADER="$(git config --local --get http.$GIT_PATH)"
git submodule sync --recursive
git -c "http.extraheader=$AUTH_HEADER" \
-c protocol.version=2 \
submodule update --init --force --recursive --depth=1
- name: Install dependencies
run: |
brew install ${{ matrix.packages }} nasm
- name: Install Qt6
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt_version }}
modules: ${{ matrix.qt_modules }}
- name: Set Qt6 environment path
run: |
echo "/usr/local/opt/qt6/bin" >> $GITHUB_PATH
- name: Build qwt
run: |
git clone --branch qwt-6.2 --depth 1 https://git.code.sf.net/p/qwt/git ../qwt
cd ../qwt
qmake -r
make -j4
- name: Build FFmpeg
run: |
git clone --depth 1 --branch n5.1 https://github.com/FFmpeg/FFmpeg ../ffmpeg
cd ../ffmpeg
./configure --enable-gpl \
--enable-static \
--disable-shared \
--disable-autodetect \
--disable-securetransport \
--disable-videotoolbox \
--disable-doc \
--disable-ffplay \
--disable-ffprobe \
--disable-debug
make -j12
- name: Build QCTools
env:
USE_BREW: false
run: |
cd Project/QtCreator
mkdir build
cd build
qmake ..
make -j4
build-linux:
strategy:
matrix:
compiler: ['gcc-9']
include:
- compiler: gcc-9
packages: gcc-9 g++-9
env: { 'CC': 'gcc-9', 'CXX': 'g++-9' }
- qt_version: "5.15.2"
qt_packages: "libxkbcommon-dev libgstreamer-plugins-base1.0-0 libgstreamer-gl1.0-0"
runs-on: ubuntu-latest
env: ${{ matrix.env }}
steps:
- uses: actions/checkout@v2
with:
fetch: 1
- name: Checkout submodules
shell: bash
run: |
GIT_PATH=https://github.com/.extraheader
AUTH_HEADER="$(git config --local --get http.$GIT_PATH)"
git submodule sync --recursive
git -c "http.extraheader=$AUTH_HEADER" \
-c protocol.version=2 \
submodule update --init --force --recursive --depth=1
- name: Install Python 3.7 version
uses: actions/setup-python@v1
with:
python-version: '3.7'
architecture: 'x64'
- name: Install compiler and FFmpeg dependencies
run: |
sudo apt-get update &&
sudo apt-get install -y ${{ matrix.packages }} \
libunwind-dev \
libavcodec-dev \
libavformat-dev \
libavdevice-dev \
libegl1-mesa-dev \
libglew-dev \
libxv-dev \
libraw1394-dev \
libavc1394-dev \
libiec61883-dev
- name: Install Qt 5.15
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt_version }}
- name: Cleanup
run: |
sudo apt-get clean -y
sudo rm -rf /var/lib/apt/lists/*
- name: Build qwt
run: |
git clone --branch qwt-6.2 --depth 1 https://git.code.sf.net/p/qwt/git ../qwt
cd ../qwt
qmake -r
make -j4
- name: Build FFmpeg
run: |
git clone --depth 1 --branch n5.1 https://github.com/FFmpeg/FFmpeg ../ffmpeg
cd ../ffmpeg
./configure --enable-gpl \
--enable-shared \
--disable-static \
--disable-autodetect \
--disable-securetransport \
--disable-videotoolbox \
--disable-doc \
--disable-ffplay \
--disable-ffprobe \
--disable-debug \
--disable-x86asm
make -j12
- name: Build QCTools
run: |
cd Project/QtCreator
qmake
make -j4
build-linux-Qt6:
strategy:
matrix:
compiler: ['gcc-9']
include:
- compiler: gcc-9
packages: gcc-9 g++-9
env: { 'CC': 'gcc-9', 'CXX': 'g++-9' }
- qt_version: "6.5.0"
qt_modules: "qtmultimedia qt5compat"
qt_packages: "libxkbcommon-dev libgstreamer-plugins-base1.0-0 libgstreamer-gl1.0-0"
runs-on: ubuntu-latest
env: ${{ matrix.env }}
steps:
- uses: actions/checkout@v2
with:
fetch: 1
- name: Checkout submodules
shell: bash
run: |
GIT_PATH=https://github.com/.extraheader
AUTH_HEADER="$(git config --local --get http.$GIT_PATH)"
git submodule sync --recursive
git -c "http.extraheader=$AUTH_HEADER" \
-c protocol.version=2 \
submodule update --init --force --recursive --depth=1
- name: Install Python 3.7 version
uses: actions/setup-python@v1
with:
python-version: '3.7'
architecture: 'x64'
- name: Install compiler and FFmpeg dependencies
run: |
sudo apt-get update &&
sudo apt-get install -y ${{ matrix.packages }} \
libunwind-dev \
libgstreamer-plugins-base1.0-dev \
libavcodec-dev \
libavformat-dev \
libavdevice-dev \
libegl1-mesa-dev \
libglew-dev \
libxkbcommon-dev \
libxv-dev
- name: Install Qt 6
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt_version }}
modules: ${{ matrix.qt_modules }}
- name: Cleanup
run: |
sudo apt-get clean -y
sudo rm -rf /var/lib/apt/lists/*
- name: Build qwt
run: |
git clone --branch qwt-6.2 --depth 1 https://git.code.sf.net/p/qwt/git ../qwt
cd ../qwt
qmake -r
make -j4
- name: Build FFmpeg
run: |
git clone --depth 1 --branch n5.1 https://github.com/FFmpeg/FFmpeg ../ffmpeg
cd ../ffmpeg
./configure --enable-gpl \
--enable-shared \
--disable-static \
--disable-autodetect \
--disable-securetransport \
--disable-videotoolbox \
--disable-doc \
--disable-ffplay \
--disable-ffprobe \
--disable-debug \
--disable-x86asm
make -j12
- name: Build QCTools
run: |
cd Project/QtCreator
qmake
make -j4
build-windows-mingw:
strategy:
matrix:
qt_version: ["5.15.2"]
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
with:
fetch: 1
- name: Checkout submodules
shell: bash
run: |
GIT_PATH=https://github.com/.extraheader
AUTH_HEADER="$(git config --local --get http.$GIT_PATH)"
git submodule sync --recursive
git -c "http.extraheader=$AUTH_HEADER" \
-c protocol.version=2 \
submodule update --init --force --recursive --depth=1
- name: Build and install zlib
shell: cmd
run: |
git clone --depth 1 https://github.com/madler/zlib ../zlib-dev
cd ../zlib-dev
mkdir build
cd build
cmake -G "Unix Makefiles" ^
-DCMAKE_INSTALL_PREFIX="%GITHUB_WORKSPACE%\..\zlib" ^
-DBUILD_SHARED_LIBS=0 ^
-DCMAKE_BUILD_TYPE=Release ^
..
make install
- name: Install Qt 5.15
uses: jurplel/install-qt-action@v3
with:
arch: win64_mingw81
version: ${{ matrix.qt_version }}
- name: Install wget & unzip
run: |
choco install wget unzip xidel
- 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
- name: Download and configure qwt
run: |
git clone --branch qwt-6.2 --depth 1 https://git.code.sf.net/p/qwt/git ../qwt
copy .github\workflows\qwtconfig.pri ..\qwt
cd ../qwt
qmake -r
- name: Build qwt
shell: cmd
run: |
cd ../qwt
mingw32-make -j4
- name: Configure QCTools
shell: cmd
run: |
cd Project/QtCreator
qmake
- name: Build QCTools
shell: cmd
run: |
cd Project/QtCreator
mingw32-make
build-windows-mingw-Qt6:
strategy:
matrix:
include:
- qt_version: "6.3.0"
qt_modules: "qtmultimedia qt5compat"
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
with:
fetch: 1
- name: Checkout submodules
shell: bash
run: |
GIT_PATH=https://github.com/.extraheader
AUTH_HEADER="$(git config --local --get http.$GIT_PATH)"
git submodule sync --recursive
git -c "http.extraheader=$AUTH_HEADER" \
-c protocol.version=2 \
submodule update --init --force --recursive --depth=1
- name: Build and install zlib
shell: cmd
run: |
git clone --depth 1 https://github.com/madler/zlib ../zlib-dev
cd ../zlib-dev
mkdir build
cd build
cmake -G "Unix Makefiles" ^
-DCMAKE_INSTALL_PREFIX="%GITHUB_WORKSPACE%\..\zlib" ^
-DBUILD_SHARED_LIBS=0 ^
-DCMAKE_BUILD_TYPE=Release ^
..
make install
- name: Install Qt 6
uses: jurplel/install-qt-action@v3
with:
arch: win64_mingw
version: ${{ matrix.qt_version }}
modules: ${{ matrix.qt_modules }}
- name: Install wget & unzip
run: |
choco install wget unzip xidel
- 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
- name: Download and configure qwt
run: |
git clone --branch qwt-6.2 --depth 1 https://git.code.sf.net/p/qwt/git ../qwt
copy .github\workflows\qwtconfig.pri ..\qwt
cd ../qwt
qmake -r
- name: Build qwt
shell: cmd
run: |
cd ../qwt
mingw32-make -j4
- name: Configure QCTools
shell: cmd
run: |
cd Project/QtCreator
qmake
- name: Build QCTools
shell: cmd
run: |
cd Project/QtCreator
mingw32-make
build-windows-vs:
strategy:
matrix:
qt_version: ["5.15.2"]
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
with:
fetch: 1
- name: Checkout submodules
shell: bash
run: |
GIT_PATH=https://github.com/.extraheader
AUTH_HEADER="$(git config --local --get http.$GIT_PATH)"
git submodule sync --recursive
git -c "http.extraheader=$AUTH_HEADER" \
-c protocol.version=2 \
submodule update --init --force --recursive --depth=1
- name: Init vs environment
uses: egor-tensin/vs-shell@v2
with:
arch: x64
- name: Build and install zlib
shell: cmd
run: |
git clone --depth 1 https://github.com/madler/zlib ../zlib-dev
cd ../zlib-dev
mkdir build
cd build
cmake -G "NMake Makefiles" ^
-DCMAKE_INSTALL_PREFIX="%GITHUB_WORKSPACE%\..\zlib" ^
-DBUILD_SHARED_LIBS=0 ^
-DCMAKE_BUILD_TYPE=Release ^
..
nmake install
- name: Install Qt 5.15
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt_version }}
- name: Install wget & unzip
run: |
choco install wget unzip xidel
- 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
- name: Download and configure qwt
run: |
git clone --branch qwt-6.2 --depth 1 https://git.code.sf.net/p/qwt/git ../qwt
copy .github\workflows\qwtconfig.pri ..\qwt
cd ../qwt
qmake -r
- name: Build qwt
shell: cmd
run: |
cd ../qwt
nmake
- name: Configure QCTools
shell: cmd
run: |
cd Project/QtCreator
qmake
- name: Build QCTools
shell: cmd
run: |
cd Project/QtCreator
nmake
build-windows-vs-Qt6:
strategy:
matrix:
include:
- qt_version: "6.3.0"
qt_modules: "qtmultimedia qt5compat"
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
with:
fetch: 1
- name: Checkout submodules
shell: bash
run: |
GIT_PATH=https://github.com/.extraheader
AUTH_HEADER="$(git config --local --get http.$GIT_PATH)"
git submodule sync --recursive
git -c "http.extraheader=$AUTH_HEADER" \
-c protocol.version=2 \
submodule update --init --force --recursive --depth=1
- name: Init vs environment
uses: egor-tensin/vs-shell@v2
with:
arch: x64
- name: Build and install zlib
shell: cmd
run: |
git clone --depth 1 https://github.com/madler/zlib ../zlib-dev
cd ../zlib-dev
mkdir build
cd build
cmake -G "NMake Makefiles" ^
-DCMAKE_INSTALL_PREFIX="%GITHUB_WORKSPACE%\..\zlib" ^
-DBUILD_SHARED_LIBS=0 ^
-DCMAKE_BUILD_TYPE=Release ^
..
nmake install
- name: Install Qt 6
uses: jurplel/install-qt-action@v3
with:
arch: win64_msvc2019_64
version: ${{ matrix.qt_version }}
modules: ${{ matrix.qt_modules }}
- name: Install wget & unzip
run: |
choco install wget unzip xidel
- 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
- name: Download and configure qwt
run: |
git clone --branch qwt-6.2 --depth 1 https://git.code.sf.net/p/qwt/git ../qwt
copy .github\workflows\qwtconfig.pri ..\qwt
cd ../qwt
qmake -r
- name: Build qwt
shell: cmd
run: |
cd ../qwt
nmake
- name: Configure QCTools
shell: cmd
run: |
cd Project/QtCreator
qmake
- name: Build QCTools
shell: cmd
run: |
cd Project/QtCreator
nmake