mirror of
https://github.com/slint-ui/slint.git
synced 2025-12-23 09:19:32 +00:00
`windows-latest` used to be that, but that's being upgrade to Windows Server 2022, which appears to have Visual Studio Code 2022 installed. That in turn seems to not be supported by node-gyp's version detection just yet. So pin to the working image for now and let's upgrade later intentionally.
85 lines
2.9 KiB
YAML
85 lines
2.9 KiB
YAML
# Copyright © SixtyFPS GmbH <info@slint-ui.com>
|
|
# SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-commercial
|
|
|
|
name: Build the C++ binary package
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
workflow_call:
|
|
|
|
jobs:
|
|
cmake_package:
|
|
env:
|
|
DYLD_FRAMEWORK_PATH: /Users/runner/work/slint/Qt/6.2.1/clang_64/lib
|
|
QT_QPA_PLATFORM: offscreen
|
|
CARGO_INCREMENTAL: false
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-20.04, macOS-11, windows-2019]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install Linux Dependencies
|
|
if: matrix.os == 'ubuntu-20.04'
|
|
run: sudo apt-get install libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev
|
|
- name: Cache Qt
|
|
if: matrix.os != 'windows-2019'
|
|
id: cache-qt
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: ~/work/slint/Qt
|
|
key: ${{ runner.os }}-${{ github.job }}-cpp-Qt
|
|
- name: Install Qt (Ubuntu)
|
|
uses: jurplel/install-qt-action@v2
|
|
if: matrix.os == 'ubuntu-20.04'
|
|
with:
|
|
version: 5.15.2
|
|
cached: ${{ steps.cache-qt.outputs.cache-hit }}
|
|
- name: Install Qt (Windows, uncached)
|
|
if: matrix.os == 'windows-2019'
|
|
uses: jurplel/install-qt-action@v2
|
|
with:
|
|
version: 6.2.1
|
|
- name: Install Qt (cached)
|
|
if: matrix.os != 'ubuntu-20.04' && matrix.os != 'windows-2019'
|
|
uses: jurplel/install-qt-action@v2
|
|
with:
|
|
version: 6.2.1
|
|
cached: ${{ steps.cache-qt.outputs.cache-hit }}
|
|
- name: Install latest stable
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
- uses: Swatinem/rust-cache@v1
|
|
- uses: actions-rs/install@v0.1
|
|
with:
|
|
crate: cargo-about
|
|
- name: Prepare licenses (with Qt)
|
|
if: matrix.os == 'windows-2019' || matrix.os == 'macOS-11'
|
|
run: bash -x ./scripts/prepare_binary_package.sh . --with-qt
|
|
- name: Prepare licenses (without Qt)
|
|
if: matrix.os != 'windows-2019' && matrix.os != 'macOS-11'
|
|
run: bash -x ./scripts/prepare_binary_package.sh .
|
|
- uses: ilammy/msvc-dev-cmd@v1
|
|
- name: Select MSVC (windows)
|
|
run: |
|
|
echo "CC=cl.exe" >> $GITHUB_ENV
|
|
echo "CXX=cl.exe" >> $GITHUB_ENV
|
|
if: matrix.os == 'windows-2019'
|
|
- name: C++ Build
|
|
uses: lukka/run-cmake@v3.4
|
|
with:
|
|
cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
|
|
cmakeListsTxtPath: CMakeLists.txt
|
|
cmakeAppendedArgs: '-DCMAKE_BUILD_TYPE=RelWithDebInfo -DSLINT_PACKAGE_BUNDLE_QT=ON'
|
|
buildDirectory: ${{ runner.workspace }}/cppbuild
|
|
buildWithCMakeArgs: '--config Release'
|
|
- name: cpack
|
|
working-directory: ${{ runner.workspace }}/cppbuild
|
|
run: cmake --build . --config Release --target package
|
|
- name: "Upload C++ packages"
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: cpp_bin
|
|
path: ${{ runner.workspace }}/cppbuild/Slint-cpp-*
|