Skip to content

Build

Build #73

Workflow file for this run

# Github Actions configuration file
name: Build
on:
#push: # execute on every push
release:
types:
- published
jobs:
build:
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- {
name: "Linux-x64"
, os: ubuntu-22.04
, QT_VERSION: 6.5.3, QT_INST_DIR: /opt, QTDIR: /opt/Qt/6.2.4/gcc_64
, VCPKG_TRIPLET: "x64-linux-release"
}
- {
name: "Windows-x64", WIN_ARCH: "x64"
, os: windows-2019
, QT_VERSION: 6.7.2, QT_INST_DIR: "C:/", QTDIR: "C:/Qt/6.7.2/msvc2019_64", QT_ARCH: win64_msvc2019_64
, VCPKG_TRIPLET: "x64-windows-release"
}
# - {
# name: "MacOS-x64"
# , os: macos-14
# , QT_VERSION: 6.2.4, QT_INST_DIR: /Users/runner, QTDIR: /Users/runner/Qt/6.2.4/clang_64
# , VCPKG_TRIPLET: "x64-osx-release"
# }
steps:
- name: Setup Windows/MSVC
if: runner.os == 'Windows'
uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{matrix.config.WIN_ARCH}}
- name: Setup Linux
if: runner.os == 'Linux'
run: sudo apt -y install pkg-config libxcb*-dev libx11-dev libxrandr-dev
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
aqtversion: ==2.0.0
py7zrversion: ==0.16.2
dir: ${{matrix.config.QT_INST_DIR}}
arch: ${{ matrix.config.QT_ARCH }}
version: ${{ matrix.config.QT_VERSION }}
modules: ${{ matrix.config.QT_MODULES }}
cached: ${{ steps.cache-qt.outputs.cache-hit }}
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: recursive
- name: Install vcpkg packages
uses: johnwason/vcpkg-action@v6
with:
revision: 'cacf5994341f27e9a14a7b8724b0634b138ecb30'
pkgs: 'vulkan "ktx[vulkan]" glslang spirv-cross vulkan-memory-allocator spdlog OpenImageIO'
triplet: '${{ matrix.config.VCPKG_TRIPLET }}'
token: ${{ github.token }}
github-binarycache: true
- name: Configure CMake
run: cmake -B ${{github.workspace}}/build -DCMAKE_INSTALL_PREFIX=dist -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=${{ matrix.config.VCPKG_TRIPLET }}
- name: Build
run: cmake --build ${{github.workspace}}/build --config Release
- name: Install
run: cmake --install ${{github.workspace}}/build --config Release
- name: Package
run: cpack --config ${{github.workspace}}/build/CPackConfig.cmake
- name: Build AppImage
if: runner.os == 'Linux'
run: |
sudo apt-get install libfuse2
mkdir -p AppDir
cp -R dist AppDir/usr
cp AppDir/usr/share/applications/io.github.houmain.gpupad.desktop AppDir
cp AppDir/usr/share/pixmaps/io.github.houmain.gpupad.png AppDir
wget -nv -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
chmod a+x linuxdeployqt*.AppImage
export VERSION='${{ github.ref_name }}'
unset QTDIR; unset QT_PLUGIN_PATH; unset LD_LIBRARY_PATH
./linuxdeployqt*.AppImage AppDir/usr/bin/gpupad -appimage -extra-plugins=iconengines,imageformats -no-translations -no-copy-copyright-files
- name: Upload to Github release
uses: xresloader/upload-to-github-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
file: "*.msi;*.dmg;GPUpad*.AppImage"
tags: true
draft: false