mirror of
https://github.com/Xaymar/obs-StreamFX
synced 2024-10-24 13:52:39 +00:00
5a3954ae0e
Fixes several files incorrectly stated a different license from the actual project, as well as the copyright headers included in all files. This change has no effect on the licensing terms, it should clear up a bit of confusion by contributors. Plus the files get a bit smaller, and we have less duplicated information across the entire project. Overall the project is GPLv2 if not built with Qt, and GPLv3 if it is built with Qt. There are no parts licensed under a different license, all have been adapted from other compatible licenses into GPLv2 or GPLv3.
402 lines
18 KiB
YAML
402 lines
18 KiB
YAML
# AUTOGENERATED COPYRIGHT HEADER START
|
|
# Copyright (C) 2019-2023 Michael Fabian 'Xaymar' Dirks <info@xaymar.com>
|
|
# AUTOGENERATED COPYRIGHT HEADER END
|
|
|
|
name: Build
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- '*'
|
|
tags:
|
|
- '*'
|
|
pull_request:
|
|
branches:
|
|
- '*'
|
|
|
|
concurrency:
|
|
group: build-${{ github.ref_name }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
CACHE_VERSION: "2022-12-02"
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
runner: [ "windows-2022", "macos-12", "ubuntu-22.04", "ubuntu-20.04" ]
|
|
qt: [ 5, 6 ]
|
|
generator: [ "MSVC", "GCC", "Clang" ]
|
|
exclude:
|
|
- runner: windows-2022
|
|
generator: GCC
|
|
- runner: windows-2022
|
|
generator: Clang
|
|
- runner: windows-2022
|
|
qt: 5
|
|
- runner: macos-12
|
|
generator: MSVC
|
|
- runner: macos-12
|
|
generator: GCC
|
|
- runner: macos-12
|
|
qt: 5
|
|
- runner: ubuntu-22.04
|
|
generator: MSVC
|
|
- runner: ubuntu-22.04
|
|
qt: 5
|
|
- runner: ubuntu-20.04
|
|
generator: MSVC
|
|
- runner: ubuntu-20.04
|
|
qt: 6
|
|
include:
|
|
# Windows supports MSVC
|
|
- runner: windows-2022
|
|
name: "Windows"
|
|
package_name: "windows"
|
|
CMAKE_SYSTEM_VERSION: "10.0.20348.0"
|
|
CMAKE_GENERATOR: "Visual Studio 17 2022"
|
|
CMAKE_GENERATOR_PLATFORM: "x64"
|
|
|
|
# MacOS supports Clang
|
|
- runner: macos-12
|
|
name: "MacOS"
|
|
package_name: "macos"
|
|
CMAKE_GENERATOR: "Xcode"
|
|
CMAKE_OSX_DEPLOYMENT_TARGET: "10.15"
|
|
CMAKE_OSX_ARCHITECTURES: "x86_64;arm64"
|
|
|
|
# Ubuntu needs version-specific binaries
|
|
- runner: ubuntu-22.04
|
|
name: "Ubuntu 22.04"
|
|
package_name: "ubuntu-22"
|
|
CMAKE_GENERATOR: "Ninja"
|
|
- runner: ubuntu-20.04
|
|
name: "Ubuntu 20.04"
|
|
package_name: "ubuntu-20"
|
|
CMAKE_GENERATOR: "Ninja"
|
|
|
|
runs-on: "${{ matrix.runner }}"
|
|
name: "${{ matrix.name }} (${{ matrix.generator }}, Qt${{ matrix.qt }})"
|
|
env:
|
|
CMAKE_GENERATOR: "${{ matrix.CMAKE_GENERATOR }}"
|
|
CMAKE_GENERATOR_PLATFORM: "${{ matrix.CMAKE_GENERATOR_PLATFORM }}"
|
|
CMAKE_GENERATOR_TOOLSET: "${{ matrix.CMAKE_GENERATOR_TOOLSET }}"
|
|
CMAKE_SYSTEM_VERSION: "${{ matrix.CMAKE_SYSTEM_VERSION }}"
|
|
CMAKE_OSX_DEPLOYMENT_TARGET: "${{ matrix.CMAKE_OSX_DEPLOYMENT_TARGET }}"
|
|
CMAKE_OSX_ARCHITECTURES: "${{ matrix.CMAKE_OSX_ARCHITECTURES }}"
|
|
steps:
|
|
- name: "Clone"
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: recursive
|
|
fetch-depth: 0
|
|
|
|
- name: "Install Build Tools (Ubuntu)"
|
|
if: startsWith( matrix.runner, 'ubuntu' )
|
|
shell: bash
|
|
run: |
|
|
sudo apt-get -qq update
|
|
sudo apt-get purge libjpeg9-dev:amd64 libjpeg8-dev:amd64 libjpeg-turbo8-dev:amd64
|
|
sudo apt-get install \
|
|
build-essential \
|
|
checkinstall \
|
|
pkg-config \
|
|
cmake \
|
|
ninja-build \
|
|
git \
|
|
gcc-10 g++10
|
|
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 800 --slave /usr/bin/g++ g++ /usr/bin/g++-10
|
|
|
|
- name: "Install LLVM/Clang (Windows)"
|
|
if: startsWith( matrix.runner, 'windows' )
|
|
run: |
|
|
curl "-kL" "https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.4/LLVM-14.0.4-win64.exe" "-f" "--retry" "5" "-o" "llvm.exe"
|
|
7z x -y -o"C:\Program Files\LLVM" llvm.exe "bin" "include" "lib" "libexec" "share" "Uninstall.exe"
|
|
echo "CLANG_PATH=\"C:\\Program Files\\LLVM\\bin\"" >> "${GITHUB_ENV}"
|
|
- name: "Install LLVM/Clang (Ubuntu)"
|
|
if: startsWith( matrix.runner, 'ubuntu' )
|
|
shell: bash
|
|
run: |
|
|
curl -jLo /tmp/llvm.sh "https://apt.llvm.org/llvm.sh"
|
|
chmod +x /tmp/llvm.sh
|
|
sudo /tmp/llvm.sh 14 all
|
|
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-14 800
|
|
sudo update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-14 800
|
|
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-14 800
|
|
sudo update-alternatives --install /usr/bin/lld lld /usr/bin/lld-14 800
|
|
sudo update-alternatives --install /usr/bin/lldb lldb /usr/bin/lldb-14 800
|
|
sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-14 800
|
|
sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-14 800
|
|
echo "CLANG_PATH=/usr/bin" >> "${GITHUB_ENV}"
|
|
- name: "Install LLVM/Clang (MacOS)"
|
|
if: startsWith( matrix.runner, 'macos' )
|
|
shell: bash
|
|
run: |
|
|
brew install llvm@14
|
|
LLVM_LOC=$(brew --prefix llvm@14)
|
|
echo "CLANG_PATH=${LLVM_LOC}/bin/" >> "${GITHUB_ENV}"
|
|
|
|
- name: "Install InnoSetup (Windows)"
|
|
if: startsWith( matrix.runner, 'windows' )
|
|
run: |
|
|
curl "-kL" "https://cdn.xaymar.com/ci/innosetup-6.2.1.exe" "-f" "--retry" "5" "-o" "inno.exe"
|
|
.\inno.exe /VERYSILENT /SP- /SUPPRESSMSGBOXES /NORESTART
|
|
|
|
- name: 'Install Packages (MacOS)'
|
|
if: startsWith( matrix.runner, 'macos' )
|
|
shell: bash
|
|
run: |
|
|
curl -kL https://cdn.xaymar.com/ci/Packages-1.2.10.dmg -f --retry 5 -o "Packages.dmg"
|
|
sudo hdiutil attach ./Packages.dmg
|
|
pushd /Volumes/Packages*
|
|
sudo installer -pkg ./Install\ Packages.pkg -target /
|
|
|
|
- name: "Setup build Tools and gather Information"
|
|
id: info
|
|
shell: bash
|
|
run: |
|
|
# Dependency Versioning
|
|
if [[ "${{ matrix.runner }}" = windows* ]]; then
|
|
if [[ -f "${{ github.workspace }}/third-party/DEPS_VERSION_WIN" ]]; then
|
|
echo "obs_deps_version=$(cat "${{ github.workspace }}/third-party/DEPS_VERSION_WIN")" >> $GITHUB_ENV
|
|
else
|
|
[[ $(cat "${{ github.workspace }}/third-party/obs-studio/.github/workflows/main.yml") =~ DEPS_VERSION_WIN:\ \'([0-9a-zA-Z\-]+)\' ]]
|
|
echo "obs_deps_version=${BASH_REMATCH[1]}" >> $GITHUB_ENV
|
|
fi
|
|
elif [[ "${{ matrix.runner }}" = macos* ]]; then
|
|
if [[ -f "${{ github.workspace }}/third-party/DEPS_VERSION_MAC" ]]; then
|
|
echo "obs_deps_version=$(cat "${{ github.workspace }}/third-party/DEPS_VERSION_MAC")" >> $GITHUB_ENV
|
|
else
|
|
[[ $(cat "${{ github.workspace }}/third-party/obs-studio/.github/workflows/main.yml") =~ DEPS_VERSION_MAC:\ \'([0-9a-zA-Z\-]+)\' ]]
|
|
echo "obs_deps_version=${BASH_REMATCH[1]}" >> $GITHUB_ENV
|
|
fi
|
|
else
|
|
echo "obs_deps_version=BADVALUE" >> $GITHUB_ENV
|
|
fi
|
|
echo "obs_version::$(cd "${{ github.workspace }}/third-party/obs-studio" && git describe --tags --long)"
|
|
|
|
# CMake Flags
|
|
if [[ "${{ matrix.CMAKE_GENERATOR }}" != "" ]]; then
|
|
echo "cmake_generator=-G \"${{ matrix.CMAKE_GENERATOR }}\"" >> $GITHUB_ENV
|
|
fi
|
|
if [[ "${{ matrix.CMAKE_GENERATOR_TOOLSET }}" != "" ]]; then
|
|
echo "cmake_generator_toolset=-T \"${{ matrix.CMAKE_GENERATOR_TOOLSET }}\"" >> $GITHUB_ENV
|
|
fi
|
|
if [[ "${{ matrix.CMAKE_GENERATOR_PLATFORM }}" != "" ]]; then
|
|
echo "cmake_generator_platform=-A \"${{ matrix.CMAKE_GENERATOR_PLATFORM }}\"" >> $GITHUB_ENV
|
|
fi
|
|
|
|
# Compiler Setup
|
|
if [[ "${{ matrix.runner }}" = ubuntu* ]]; then
|
|
if [[ "${{ matrix.generator }}" = "GCC" ]]; then
|
|
echo "CC=gcc-10" >> "${GITHUB_ENV}"
|
|
echo "CXX=g++-10" >> "${GITHUB_ENV}"
|
|
echo "LD=ld" >> "${GITHUB_ENV}"
|
|
elif [[ "${{ matrix.generator }}" = "Clang" ]]; then
|
|
echo "CC=clang-14" >> "${GITHUB_ENV}"
|
|
echo "CXX=clang++-14" >> "${GITHUB_ENV}"
|
|
echo "LD=lld" >> "${GITHUB_ENV}"
|
|
fi
|
|
fi
|
|
|
|
- name: "Dependency: Qt (Cache)"
|
|
id: qt-cache
|
|
if: ${{ ! startsWith( matrix.runner, 'ubuntu' ) }}
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: "${{ github.workspace }}/build/qt"
|
|
key: "${{ matrix.runner }}-obsdeps${{ env.obs_deps_version }}-qt${{ matrix.qt }}-${{ env.CACHE_VERSION }}"
|
|
- name: "Dependency: Qt "
|
|
id: qt
|
|
if: ${{ startsWith( matrix.runner, 'ubuntu' ) || (steps.qt-cache.outputs.cache-hit != 'true') }}
|
|
shell: bash
|
|
run: |
|
|
if [[ "${{ matrix.runner }}" = windows* ]]; then
|
|
curl --retry 5 --retry-delay 30 -jLo /tmp/qt.zip "https://github.com/obsproject/obs-deps/releases/download/${{ env.obs_deps_version }}/windows-deps-qt${{ matrix.qt }}-${{ env.obs_deps_version }}-x64.zip"
|
|
if [[ ! -f "${{ github.workspace }}/build/qt" ]]; then mkdir -p "${{ github.workspace }}/build/qt"; fi
|
|
7z x -y -o"${{ github.workspace }}/build/qt" -- "/tmp/qt.zip"
|
|
elif [[ "${{ matrix.runner }}" = macos* ]]; then
|
|
curl --retry 5 --retry-delay 30 -jLo /tmp/qt.tar.xz "https://github.com/obsproject/obs-deps/releases/download/${{ env.obs_deps_version }}/macos-deps-qt${{ matrix.qt }}-${{ env.obs_deps_version }}-universal.tar.xz"
|
|
if [[ ! -f "${{ github.workspace }}/build/qt" ]]; then mkdir -p "${{ github.workspace }}/build/qt"; fi
|
|
tar -xvf "/tmp/qt.tar.xz" -C "${{ github.workspace }}/build/qt"
|
|
elif [[ "${{ matrix.runner }}" = ubuntu* ]]; then
|
|
if [[ ${{ matrix.qt }} -eq 5 ]]; then
|
|
sudo apt-get -y install -V \
|
|
qtbase5-dev qtbase5-private-dev libqt5svg5-dev
|
|
elif [[ ${{ matrix.qt }} -eq 6 ]]; then
|
|
sudo apt-get -y install -V \
|
|
qt6-base-dev qt6-base-private-dev libqt6svg6-dev libgles2-mesa-dev libegl1-mesa-dev libgl1-mesa-dev
|
|
fi
|
|
fi
|
|
|
|
- name: "Dependency: OBS Dependencies (FFmpeg, CURL, ...) (Cache)"
|
|
id: obsdeps-cache
|
|
if: ${{ ! startsWith( matrix.runner, 'ubuntu' ) }}
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: "${{ github.workspace }}/build/obsdeps"
|
|
key: "${{ matrix.runner }}-obsdeps${{ env.obs_deps_version }}-${{ env.CACHE_VERSION }}"
|
|
- name: "Dependency: OBS Dependencies (FFmpeg, CURL, ...)"
|
|
id: obsdeps
|
|
if: ${{ startsWith( matrix.runner, 'ubuntu' ) || (steps.obsdeps-cache.outputs.cache-hit != 'true') }}
|
|
shell: bash
|
|
run: |
|
|
if [[ "${{ matrix.runner }}" = windows* ]]; then
|
|
curl --retry 5 --retry-delay 30 -jLo /tmp/obsdeps.zip "https://github.com/obsproject/obs-deps/releases/download/${{ env.obs_deps_version }}/windows-deps-${{ env.obs_deps_version }}-x64.zip"
|
|
if [[ ! -f "${{ github.workspace }}/build/obsdeps" ]]; then mkdir -p "${{ github.workspace }}/build/obsdeps"; fi
|
|
7z x -y -o"${{ github.workspace }}/build/obsdeps" -- "/tmp/obsdeps.zip"
|
|
elif [[ "${{ matrix.runner }}" = macos* ]]; then
|
|
curl --retry 5 --retry-delay 30 -jLo /tmp/obsdeps.tar.xz "https://github.com/obsproject/obs-deps/releases/download/${{ env.obs_deps_version }}/macos-deps-${{ env.obs_deps_version }}-universal.tar.xz"
|
|
if [[ ! -f "${{ github.workspace }}/build/obsdeps" ]]; then mkdir -p "${{ github.workspace }}/build/obsdeps"; fi
|
|
tar -xvf "/tmp/obsdeps.tar.xz" -C "${{ github.workspace }}/build/obsdeps"
|
|
elif [[ "${{ matrix.runner }}" = ubuntu* ]]; then
|
|
sudo apt-get -y install -V \
|
|
libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libswresample-dev libswscale-dev \
|
|
libcurl4-openssl-dev
|
|
fi
|
|
|
|
- name: "Dependency: OBS Libraries (Cache)"
|
|
id: obs-cache
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: "${{ github.workspace }}/build/obs"
|
|
key: "${{ matrix.runner }}-${{ matrix.generator }}-obs${{ env.obs_version }}-obsdeps${{ env.obs_deps_version }}-qt${{ matrix.qt }}-${{ env.CACHE_VERSION }}"
|
|
- name: "Dependency: OBS Libraries"
|
|
id: obs
|
|
if: ${{ steps.obs-cache.outputs.cache-hit != 'true' }}
|
|
shell: bash
|
|
env:
|
|
CMAKE_BUILD_TYPE: "Release"
|
|
run: |
|
|
# Extra requirements by libobs on Linux.
|
|
if [[ "${{ matrix.runner }}" = ubuntu* ]]; then
|
|
sudo apt-get install \
|
|
libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libswresample-dev libswscale-dev \
|
|
libx264-dev libcurl4-openssl-dev libmbedtls-dev libgl1-mesa-dev libjansson-dev libluajit-5.1-dev python3-dev \
|
|
libx11-dev libxcb-randr0-dev libxcb-shm0-dev libxcb-xinerama0-dev libxcomposite-dev libxinerama-dev \
|
|
libxcb1-dev libx11-xcb-dev libxcb-xfixes0-dev swig libcmocka-dev libxss-dev libglvnd-dev libgles2-mesa \
|
|
libgles2-mesa-dev libwayland-dev \
|
|
libasound2-dev libfdk-aac-dev libfontconfig-dev libfreetype6-dev libjack-jackd2-dev libpulse-dev \
|
|
libsndio-dev libspeexdsp-dev libudev-dev libv4l-dev libva-dev libvlc-dev libdrm-dev
|
|
fi
|
|
cmake \
|
|
-S "${{ github.workspace }}/third-party/obs-studio" \
|
|
-B "${{ github.workspace }}/build/obs" \
|
|
${{ env.cmake_generator }} \
|
|
${{ env.cmake_generator_toolset }} \
|
|
${{ env.cmake_generator_platform }} \
|
|
-DCMAKE_C_COMPILER="${{ env.CC }}" \
|
|
-DCMAKE_CXX_COMPILER="${{ env.CXX }}" \
|
|
-DCMAKE_LINKER="${{ env.LD }}" \
|
|
-DCMAKE_OSX_ARCHITECTURES="${{ matrix.CMAKE_OSX_ARCHITECTURES }}" \
|
|
-DCMAKE_OSX_DEPLOYMENT_TARGET="${{ matrix.CMAKE_OSX_DEPLOYMENT_TARGET }}" \
|
|
-DCMAKE_SYSTEM_VERSION="${{ matrix.CMAKE_SYSTEM_VERSION }}" \
|
|
-DCMAKE_BUILD_TYPE="${{ env.CMAKE_BUILD_TYPE }}" \
|
|
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/build/obs/install" \
|
|
-DENABLE_PLUGINS=OFF \
|
|
-DENABLE_UI=OFF \
|
|
-DENABLE_SCRIPTING=OFF \
|
|
-DCMAKE_PREFIX_PATH="${{ github.workspace }}/build/obsdeps;${{ github.workspace }}/build/qt"
|
|
cmake \
|
|
--build "${{ github.workspace }}/build/obs" \
|
|
--config Release \
|
|
--target obs-frontend-api
|
|
cmake \
|
|
--install "${{ github.workspace }}/build/obs" \
|
|
--config Release \
|
|
--component obs_libraries
|
|
|
|
- name: "Configure (Cache)"
|
|
if: ${{ ! startsWith( github.ref, 'refs/tags/' ) }}
|
|
id: streamfx-cache
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: "${{ github.workspace }}/build/ci"
|
|
key: "${{ matrix.runner }}-${{ matrix.generator }}-${{ github.ref_name }}-obs${{ env.obs_version }}-obsdeps${{ env.obs_deps_version }}-qt${{ matrix.qt }}-${{ env.CACHE_VERSION }}"
|
|
restore-keys: |
|
|
"${{ matrix.runner }}-${{ matrix.generator }}-${{ github.ref_name }}-obs${{ env.obs_version }}-obsdeps${{ env.obs_deps_version }}-qt${{ matrix.qt }}-${{ env.CACHE_VERSION }}"
|
|
"${{ matrix.runner }}-${{ matrix.generator }}-main-obs${{ env.obs_version }}-obsdeps${{ env.obs_deps_version }}-qt${{ matrix.qt }}-${{ env.CACHE_VERSION }}"
|
|
- name: "Configure"
|
|
continue-on-error: true
|
|
shell: bash
|
|
run: |
|
|
cmake \
|
|
-S "${{ github.workspace }}" \
|
|
-B "${{ github.workspace }}/build/ci" \
|
|
${{ env.cmake_generator }} \
|
|
${{ env.cmake_generator_toolset }} \
|
|
${{ env.cmake_generator_platform }} \
|
|
-DCMAKE_C_COMPILER="${{ env.CC }}" \
|
|
-DCMAKE_CXX_COMPILER="${{ env.CXX }}" \
|
|
-DCMAKE_LINKER="${{ env.LD }}" \
|
|
-DCMAKE_OSX_ARCHITECTURES="${{ matrix.CMAKE_OSX_ARCHITECTURES }}" \
|
|
-DCMAKE_OSX_DEPLOYMENT_TARGET="${{ matrix.CMAKE_OSX_DEPLOYMENT_TARGET }}" \
|
|
-DCMAKE_SYSTEM_VERSION="${{ matrix.CMAKE_SYSTEM_VERSION }}" \
|
|
-DCMAKE_BUILD_TYPE="${{ env.CMAKE_BUILD_TYPE }}" \
|
|
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/build/ci/install" \
|
|
-DPACKAGE_NAME="streamfx-${{ matrix.package_name }}-debug" \
|
|
-DPACKAGE_PREFIX="${{ github.workspace }}/build/package" \
|
|
-DENABLE_CLANG=TRUE -DCLANG_PATH="${{ env.CLANG_PATH }}" \
|
|
-DENABLE_PROFILING=ON \
|
|
-Dlibobs_DIR="${{ github.workspace }}/build/obs/install" \
|
|
-DQt_DIR="${{ github.workspace }}/build/qt" \
|
|
-DFFmpeg_DIR="${{ github.workspace }}/build/obsdeps" \
|
|
-DCURL_DIR="${{ github.workspace }}/build/obsdeps"
|
|
- name: "Build: Debug"
|
|
continue-on-error: true
|
|
shell: bash
|
|
env:
|
|
CMAKE_BUILD_TYPE: "Debug"
|
|
run: |
|
|
if [[ "${{ matrix.runner }}" = windows* ]]; then
|
|
cmake --build "build/ci" --config ${{ env.CMAKE_BUILD_TYPE }} --target install
|
|
elif [[ "${{ matrix.runner }}" = ubuntu* ]]; then
|
|
cmake --build "build/ci" --config ${{ env.CMAKE_BUILD_TYPE }} --target install
|
|
elif [[ "${{ matrix.runner }}" = macos* ]]; then
|
|
cmake --build "build/ci" --config ${{ env.CMAKE_BUILD_TYPE }} --target install
|
|
fi
|
|
- name: "Build: Release"
|
|
shell: bash
|
|
env:
|
|
CMAKE_BUILD_TYPE: "RelWithDebInfo"
|
|
run: |
|
|
if [[ "${{ matrix.runner }}" = windows* ]]; then
|
|
cmake --build "build/ci" --config ${{ env.CMAKE_BUILD_TYPE }} --target install
|
|
elif [[ "${{ matrix.runner }}" = ubuntu* ]]; then
|
|
cmake --build "build/ci" --config ${{ env.CMAKE_BUILD_TYPE }} --target install/strip
|
|
elif [[ "${{ matrix.runner }}" = macos* ]]; then
|
|
cmake --build "build/ci" --config ${{ env.CMAKE_BUILD_TYPE }} --target install
|
|
fi
|
|
|
|
- name: "Packaging"
|
|
shell: bash
|
|
run: |
|
|
mkdir "${{ github.workspace }}/build/package"
|
|
cmake --build "${{ github.workspace }}/build/ci" --config RelWithDebInfo --target PACKAGE_7Z
|
|
- name: "Packaging (Windows)"
|
|
if: startsWith( matrix.runner, 'windows' )
|
|
shell: cmd
|
|
run: |
|
|
"C:\Program Files (x86)\Inno Setup 6\ISCC.exe" /V10 ".\build\ci\installer.iss"
|
|
- name: "Packaging (MacOS)"
|
|
if: startsWith( matrix.runner, 'macos' )
|
|
shell: bash
|
|
run: |
|
|
packagesbuild "${{ github.workspace }}/build/ci/installer.pkgproj"
|
|
|
|
- name: "Artifacts"
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: "${{ matrix.runner }}-${{ matrix.generator }}-qt${{ matrix.qt }}"
|
|
path: "${{ github.workspace }}/build/package"
|
|
|
|
- name: "Validate clang-format"
|
|
shell: bash
|
|
run: |
|
|
cmake --build "${{ github.workspace }}/build/ci" --config Debug --target clang-format
|
|
cmake --build "${{ github.workspace }}/build/ci" --config RelWithDebInfo --target clang-format
|
|
git --no-pager diff --patch --minimal HEAD --
|
|
git update-index --refresh
|
|
git diff-index --quiet HEAD --
|