Skip to content

Update build scripts #705

Update build scripts

Update build scripts #705

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@6 qt@5
- name: Install qwt-qt5
run: |
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/56cd02e96876d1fb5b9ae951d605585fe8d614de/Formula/qwt.rb
brew install --ignore-dependencies ./qwt.rb
- name: Set Qt5 environment path
run: |
echo `brew --prefix qt@5`/bin >> $GITHUB_PATH
- name: Check Qt install
run: |
qmake -v
- name: Build QCTools
env:
USE_BREW: true
run: |
cd Project/QtCreator
mkdir build
cd build
export PKG_CONFIG_PATH="/opt/homebrew/opt/ffmpeg@6/lib/pkgconfig"
qmake ..
make CC=$CC CXX=$CXX -j4
build-macos-brew-Qt6:
strategy:
matrix:
compiler: ['clang-9']
include:
- compiler: clang-9
packages: llvm@13
env: { 'CC': 'clang', 'CXX': 'clang++', 'HOMEBREW_NO_INSTALL_CLEANUP': '1', 'HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK': '1' }
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@6 qt
- name: Install qwt
run: |
brew install --ignore-dependencies qwt
- name: Set Qt6 environment path
run: |
echo `brew --prefix qt`/bin >> $GITHUB_PATH
- name: Check Qt install
run: |
qmake -v
- name: Build QCTools
env:
USE_BREW: true
run: |
cd Project/QtCreator
mkdir build
cd build
export PKG_CONFIG_PATH="/opt/homebrew/opt/ffmpeg@6/lib/pkgconfig"
qmake ..
make -j4
build-macos-no-brew:
strategy:
matrix:
compiler: ['clang-9']
include:
- compiler: clang-9
packages: llvm@13
env: { 'CC': 'clang', 'CXX': 'clang++' }
- qt_version: "5.15.*"
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 Qt5
run: |
brew install qt@5
- name: Set Qt5 environment path
run: |
echo `brew --prefix qt@5`/bin >> $GITHUB_PATH
# - name: Install Qt5
# uses: jurplel/install-qt-action@v3
# with:
# version: ${{ matrix.qt_version }}
# modules: ${{ matrix.qt_modules }}
- name: Check Qt install
run: |
qmake -v
- name: Build qwt
run: |
git clone --branch qwt-6.3 --depth 1 https://git.code.sf.net/p/qwt/git ../qwt
cd ../qwt
qmake -r
make CC=$CC CXX=$CXX -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 CC=$CC CXX=$CXX -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@13
env: { 'CC': 'clang', 'CXX': 'clang++', 'HOMEBREW_NO_INSTALL_CLEANUP': '1', 'HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK': '1' }
- qt_version: "6.5.*"
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: Check Qt install
run: |
qmake -v
- name: Build qwt
run: |
git clone --branch qwt-6.3 --depth 1 https://git.code.sf.net/p/qwt/git ../qwt
cd ../qwt
qmake -r
make CC=$CC CXX=$CXX -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 CC=$CC CXX=$CXX -j12
- name: Build QCTools
env:
USE_BREW: false
run: |
cd Project/QtCreator
mkdir build
cd build
qmake ..
make CC=$CC CXX=$CXX -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.*"
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.3 --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.*"
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.3 --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.*"]
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 FFmpeg
shell: pwsh
run: |
Set-Location ..
$json = $(curl -L -H "Accept: application/vnd.github+json" https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/latest)
$ffmpeg_name = $($json | jq -r '.assets[] | select(.name | endswith("-gpl-shared-6.1.zip")).name | sub("\\.zip$";"")')
$ffmpeg_url = $($json | jq -r '.assets[] | select(.name | endswith("-gpl-shared-6.1.zip")).browser_download_url')
Invoke-WebRequest -Uri "$ffmpeg_url" -OutFile "$ffmpeg_name.zip"
Expand-Archive -Path "$ffmpeg_name.zip" -DestinationPath .
Rename-Item -Path "$ffmpeg_name" -NewName "ffmpeg"
- name: Download and configure qwt
run: |
git clone --branch qwt-6.3 --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 FFmpeg
shell: pwsh
run: |
Set-Location ..
$json = $(curl -L -H "Accept: application/vnd.github+json" https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/latest)
$ffmpeg_name = $($json | jq -r '.assets[] | select(.name | endswith("-gpl-shared-6.1.zip")).name | sub("\\.zip$";"")')
$ffmpeg_url = $($json | jq -r '.assets[] | select(.name | endswith("-gpl-shared-6.1.zip")).browser_download_url')
Invoke-WebRequest -Uri "$ffmpeg_url" -OutFile "$ffmpeg_name.zip"
Expand-Archive -Path "$ffmpeg_name.zip" -DestinationPath .
Rename-Item -Path "$ffmpeg_name" -NewName "ffmpeg"
- name: Download and configure qwt
run: |
git clone --branch qwt-6.3 --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.*"]
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 FFmpeg
shell: pwsh
run: |
Set-Location ..
$json = $(curl -L -H "Accept: application/vnd.github+json" https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/latest)
$ffmpeg_name = $($json | jq -r '.assets[] | select(.name | endswith("-gpl-shared-6.1.zip")).name | sub("\\.zip$";"")')
$ffmpeg_url = $($json | jq -r '.assets[] | select(.name | endswith("-gpl-shared-6.1.zip")).browser_download_url')
Invoke-WebRequest -Uri "$ffmpeg_url" -OutFile "$ffmpeg_name.zip"
Expand-Archive -Path "$ffmpeg_name.zip" -DestinationPath .
Rename-Item -Path "$ffmpeg_name" -NewName "ffmpeg"
- name: Download and configure qwt
run: |
git clone --branch qwt-6.3 --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 FFmpeg
shell: pwsh
run: |
Set-Location ..
$json = $(curl -L -H "Accept: application/vnd.github+json" https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/latest)
$ffmpeg_name = $($json | jq -r '.assets[] | select(.name | endswith("-gpl-shared-6.1.zip")).name | sub("\\.zip$";"")')
$ffmpeg_url = $($json | jq -r '.assets[] | select(.name | endswith("-gpl-shared-6.1.zip")).browser_download_url')
Invoke-WebRequest -Uri "$ffmpeg_url" -OutFile "$ffmpeg_name.zip"
Expand-Archive -Path "$ffmpeg_name.zip" -DestinationPath .
Rename-Item -Path "$ffmpeg_name" -NewName "ffmpeg"
- name: Download and configure qwt
run: |
git clone --branch qwt-6.3 --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