Skip to content

Build slint-viewer or -lsp binary #8

Build slint-viewer or -lsp binary

Build slint-viewer or -lsp binary #8

# Copyright © SixtyFPS GmbH <info@slint.dev>
# SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.1 OR LicenseRef-Slint-commercial
name: Build slint-viewer or -lsp binary
on:
workflow_dispatch:
inputs:
program:
type: choice
description: binary to build
options:
- viewer
- lsp
features:
type: string
description: features to enable for build
# Keep in sync with features in nightly_snapshot.yaml and cpp_package.yaml
default: "backend-winit,renderer-femtovg,renderer-skia,renderer-software"
workflow_call:
inputs:
program:
type: string
description: binary to build
features:
type: string
description: features to enable for build
# Keep in sync with features in nightly_snapshot.yaml and cpp_package.yaml
default: "backend-winit,renderer-femtovg,renderer-skia,renderer-software"
env:
MACOSX_DEPLOYMENT_TARGET: "11.0"
jobs:
# build_windows:
# runs-on: windows-2022
# steps:
# - uses: actions/checkout@v3
# - uses: ./.github/actions/setup-rust
# with:
# target: x86_64-pc-windows-msvc
# - name: Install Qt
# uses: jurplel/install-qt-action@v3
# with:
# version: 6.5.1
# cache: true
# - uses: baptiste0928/cargo-install@v2
# with:
# crate: cargo-about
# - name: Build
# run: cargo build --verbose --no-default-features --features ${{ github.event.inputs.features || inputs.features }} --release -p slint-${{ github.event.inputs.program || inputs.program }}
# - name: Create artifact directory
# run: |
# mkdir pkg
# cd pkg
# mkdir slint-${{ github.event.inputs.program || inputs.program }}
# cd slint-${{ github.event.inputs.program || inputs.program }}
# cp ..\..\target/release/slint-${{ github.event.inputs.program || inputs.program }}.exe ./
# cd ..
# cd ..
# cd tools\${{ github.event.inputs.program || inputs.program }}
# bash -x ../../scripts/prepare_binary_package.sh ..\..\pkg\slint-${{ github.event.inputs.program || inputs.program }}
#
# - name: Upload artifact
# uses: actions/upload-artifact@v3
# with:
# name: slint-${{ github.event.inputs.program || inputs.program }}-windows
# path: |
# pkg
#
# build_linux:
# runs-on: ubuntu-20.04
# steps:
# - uses: actions/checkout@v3
# - uses: ./.github/actions/setup-rust
# with:
# target: x86_64-unknown-linux-gnu
# - name: Install Qt
# uses: jurplel/install-qt-action@v3
# with:
# version: 5.15.2
# cache: true
# - uses: baptiste0928/cargo-install@v2
# with:
# crate: cargo-about
# - name: Build
# run: cargo build --verbose --no-default-features --features backend-qt,${{ github.event.inputs.features || inputs.features }} --release -p slint-${{ github.event.inputs.program || inputs.program }}
# - name: Create artifact directory
# run: |
# mkdir -p slint-${{ github.event.inputs.program || inputs.program }}
# cp target/release/slint-${{ github.event.inputs.program || inputs.program }} slint-${{ github.event.inputs.program || inputs.program }}/
# cd tools/${{ github.event.inputs.program || inputs.program }}
# ../../scripts/prepare_binary_package.sh ../../slint-${{ github.event.inputs.program || inputs.program }}
# - name: Tar artifacts to preserve permissions
# run: tar czvf slint-${{ github.event.inputs.program || inputs.program }}-linux.tar.gz slint-${{ github.event.inputs.program || inputs.program }}
# - name: Upload artifact
# uses: actions/upload-artifact@v3
# with:
# name: slint-${{ github.event.inputs.program || inputs.program }}-linux
# path: slint-${{ github.event.inputs.program || inputs.program }}-linux.tar.gz
build_macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup-rust
with:
target: x86_64-apple-darwin
- uses: ./.github/actions/setup-rust
with:
target: aarch64-apple-darwin
# - uses: baptiste0928/cargo-install@v2
# with:
# crate: cargo-about
# - name: Build x86_64
# run: cargo build --verbose --target x86_64-apple-darwin --no-default-features --features ${{ github.event.inputs.features || inputs.features }} --release -p slint-${{ github.event.inputs.program || inputs.program }}
# - name: Build aarch64
# run: cargo build --verbose --target aarch64-apple-darwin --no-default-features --features ${{ github.event.inputs.features || inputs.features }} --release -p slint-${{ github.event.inputs.program || inputs.program }}
# - name: Create artifact directory
# run: |
# mkdir -p slint-${{ github.event.inputs.program || inputs.program }}
# cd slint-${{ github.event.inputs.program || inputs.program }}
# lipo -create -output ./slint-${{ github.event.inputs.program || inputs.program }} ../target/x86_64-apple-darwin/release/slint-${{ github.event.inputs.program || inputs.program }} ../target/aarch64-apple-darwin/release/slint-${{ github.event.inputs.program || inputs.program }}
# install_name_tool -add_rpath @executable_path/. ./slint-${{ github.event.inputs.program || inputs.program }}
# cd ..
# cd tools/${{ github.event.inputs.program || inputs.program }}
# ../../scripts/prepare_binary_package.sh ../../slint-${{ github.event.inputs.program || inputs.program }}
- name: boilerplate
run: |
rm Cargo.toml
cargo new blah
cd blah
cargo build
- uses: ./.github/actions/codesign
with:
#binary: slint-${{ github.event.inputs.program || inputs.program }}/slint-${{ github.event.inputs.program || inputs.program }}
binary: blah/target/debug/blah
certificate: ${{ secrets.APPLE_CERTIFICATE_P12 }}
certificate_password: ${{ secrets.APPLE_CERTIFICATE_P12_PASSWORD }}
keychain_password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }}
developer_id: ${{ secrets.APPLE_DEV_ID }}
- name: Tar artifacts to preserve permissions
run: tar czvf slint-${{ github.event.inputs.program || inputs.program }}-macos.tar.gz slint-${{ github.event.inputs.program || inputs.program }}
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: slint-${{ github.event.inputs.program || inputs.program }}-macos
path: slint-${{ github.event.inputs.program || inputs.program }}-macos.tar.gz