Skip to content

Merge pull request #70 from Deledrius/new_pfm_attrib #50

Merge pull request #70 from Deledrius/new_pfm_attrib

Merge pull request #70 from Deledrius/new_pfm_attrib #50

Workflow file for this run

name: Windows-CI
on: [push, pull_request]
jobs:
build:
runs-on: ${{ matrix.cfg.os }}
strategy:
matrix:
cfg:
- os: windows-2019
generator: Visual Studio 16 2019
cmake-arch: Win32
triplet: x86-windows-static-md
kf5: v5.106.0
qt: 5.15.2
kf5_cmake_args: ""
qt-arch: win32_msvc2019
- os: windows-2019
generator: Visual Studio 16 2019
cmake-arch: x64
triplet: x64-windows-static-md
kf5: v5.106.0
kf5_cmake_args: "-DBUILD_WITH_QT6=ON"
qt: 6.5.1
qt_arch: win64_msvc2019_64
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Bootstrap vcpkg
id: bootstrap-vcpkg
run: |
cd C:\vcpkg
git pull
Write-Host "::set-output name=vcpkg-rev::$(git rev-parse HEAD)"
./bootstrap-vcpkg.bat
- name: Restore Dependency Cache
id: cache-vcpkg
uses: actions/cache@v3
with:
path: ${{ github.workspace }}\vcpkg_installed
key: |
vcpkg-triplet=${{ matrix.cfg.triplet }} vcpkg-response=${{ hashFiles('vcpkg.json') }} vcpkg-rev=${{ steps.bootstrap-vcpkg.outputs.vcpkg-rev }}
restore-keys: |
vcpkg-triplet=${{ matrix.cfg.triplet }} vcpkg-response=${{ hashFiles('vcpkg.json') }}
vcpkg-triplet=${{ matrix.cfg.triplet }}
- name: Upgrade Dependencies
if: steps.cache-vcpkg.outputs.cache-hit == 'true'
run: |
vcpkg upgrade --no-dry-run --triplet ${{ matrix.cfg.triplet }}
- name: Build Dependencies
run: |
vcpkg install --triplet ${{ matrix.cfg.triplet }}
vcpkg list --x-full-desc
# Qt5 takes roughly a thousand years to build, so we download it from elsewhere...
- name: Restore Qt Cache
id: cache-qt
uses: actions/cache@v3
with:
path: ${{ github.workspace }}\qt
key: os=${{ runner.os }} qt=${{ matrix.cfg.qt }} arch=${{ matrix.cfg.qt-arch }}
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
arch: ${{ matrix.cfg.qt-arch }}
version: ${{ matrix.cfg.qt }}
dir: ${{ github.workspace }}\qt
cached: ${{ steps.cache-qt.outputs.cache-hit }}
# KF5SyntaxHighlighting and ecm release in lock-step
- name: Checkout ECM
uses: actions/checkout@v3
with:
repository: KDE/extra-cmake-modules
path: ecm
ref: ${{ matrix.cfg.kf5 }}
- name: Build ECM
run: |
cd ecm
mkdir build && cd build
cmake `
-G "${{ matrix.cfg.generator }}" -A ${{ matrix.cfg.cmake-arch }} `
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}\install `
-DBUILD_HTML_DOCS=OFF -DBUILD_MAN_DOCS=OFF -DBUILD_QTHELP_DOCS=OFF -DBUILD_TESTING=OFF `
${{ matrix.cfg.kf5_cmake_args }} ..
cmake --build . --config Release -j 2
cmake --build . --config Release --target INSTALL
# Build KF5SyntaxHighlighting manually due to Qt dependency...
- name: Checkout KF5SyntaxHighlighting
uses: actions/checkout@v3
with:
repository: KDE/syntax-highlighting
path: syntax-highlighting
ref: ${{ matrix.cfg.kf5 }}
- uses: shogo82148/actions-setup-perl@v1
- name: Build KF5SyntaxHighlighting
run: |
cd syntax-highlighting
mkdir build && cd build
cmake `
-G "${{ matrix.cfg.generator }}" -A ${{ matrix.cfg.cmake-arch }} `
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}\install `
-DBUILD_HTML_DOCS=OFF -DBUILD_MAN_DOCS=OFF -DBUILD_QTHELP_DOCS=OFF -DBUILD_TESTING=OFF `
${{ matrix.cfg.kf5_cmake_args }} ..
cmake --build . --config Release -j 2
cmake --build . --config Release --target INSTALL
- name: Build PlasmaShop
run: |
mkdir build && cd build
cmake `
-G "${{ matrix.cfg.generator }}" -A ${{ matrix.cfg.cmake-arch }} `
-DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake `
-DVCPKG_TARGET_TRIPLET=${{ matrix.cfg.triplet }} `
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}\install `
..
cmake --build . --config Release -j 2
cmake --build . --config Release --target INSTALL
- name: Deploy Qt
run: |
$ExeFiles = Get-ChildItem "${{ github.workspace }}\install\bin" -Filter *.exe
$DllFiles = Get-ChildItem "${{ github.workspace }}\install\bin" -Filter *.dll
ForEach-Object -InputObject ($ExeFiles + $DllFiles) {
windeployqt.exe --release $_.FullName
}
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ runner.os }}-${{ matrix.cfg.cmake-arch }}-qt${{ matrix.cfg.qt }}
path: install\bin