# Copyright © SixtyFPS GmbH # 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 }} setup-python: false - 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-*