Skip to content

Commit

Permalink
WIP: Attempt to build MCU binary packages
Browse files Browse the repository at this point in the history
  • Loading branch information
tronical committed Aug 12, 2024
1 parent 49d0c96 commit c47b6c3
Show file tree
Hide file tree
Showing 2 changed files with 104 additions and 1 deletion.
101 changes: 100 additions & 1 deletion .github/workflows/cpp_package.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ env:
MACOSX_DEPLOYMENT_TARGET: "11.0"
# Keep in sync with features in nightly_snapshot.yaml, slint_tool_binary.yaml, api/node/Cargo.toml, and api/python/Cargo.toml
SLINT_BINARY_FEATURES: "-DSLINT_FEATURE_BACKEND_LINUXKMS_NOSEAT=ON -DSLINT_FEATURE_BACKEND_WINIT=ON -DSLINT_FEATURE_RENDERER_FEMTOVG=ON -DSLINT_FEATURE_RENDERER_SKIA=ON -DSLINT_FEATURE_RENDERER_SOFTWARE=ON"
SLINT_MCU_FEATURES: "-DSLINT_FEATURE_FREESTANDING=ON -DSLINT_FEATURE_RENDERER_SOFTWARE=ON"

jobs:
cmake_package:
cmake_package_desktop:
env:
DYLD_FRAMEWORK_PATH: /Users/runner/work/slint/Qt/6.5.1/clang_64/lib
QT_QPA_PLATFORM: offscreen
Expand Down Expand Up @@ -70,3 +71,101 @@ jobs:
with:
name: cpp_bin-${{ matrix.package_suffix }}
path: ${{ runner.workspace }}/cppbuild/Slint-cpp-*

cmake_package_mcu:
env:
CARGO_INCREMENTAL: false
strategy:
matrix:
target: [thumbv7em-none-eabihf]
host: [ubuntu-20.04, windows-2022, macOS-12]

runs-on: ${{ matrix.host }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install-linux-dependencies
with:
old-ubuntu: true
- uses: ./.github/actions/setup-rust
- uses: baptiste0928/cargo-install@v3
with:
crate: cargo-about
- name: Prepare licenses
run: bash -x ../../scripts/prepare_binary_package.sh ../..
working-directory: api/cpp/
- 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.host == 'windows-2022'
- name: C++ Build
uses: lukka/[email protected]
with:
cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
cmakeListsTxtPath: CMakeLists.txt
cmakeAppendedArgs: "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DRust_CARGO_TARGET=${{ matrix.target }} ${{ env.SLINT_MCU_FEATURES }} ${{ matrix.build_flags }}"
buildDirectory: ${{ runner.workspace }}/cppbuild
buildWithCMakeArgs: "--config Release"
- name: cpack
working-directory: ${{ runner.workspace }}/cppbuild
run: cpack -G TGZ
- name: "Upload C++ packages"
uses: actions/upload-artifact@v4
with:
name: cpp_mcu_bin-${{ runner.os }}-${{ runner.arch }}-${{ matrix.target }}
path: ${{ runner.workspace }}/cppbuild/Slint-cpp-*

cmake_package_mcu_esp:
env:
CARGO_INCREMENTAL: false
strategy:
matrix:
target: [riscv32imafc-esp-espidf]
host: [ubuntu-22.04, windows-2022]

runs-on: ${{ matrix.host }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install-linux-dependencies
with:
old-ubuntu: true
- uses: dtolnay/rust-toolchain@stable
- name: install espup
run: |
cargo install espup
espup install
rustup default esp
- name: add esp toolchains to PATH
if: runner.os == 'Linux'
run: |
source "$HOME/export-esp.sh"
echo "$PATH" >> "$GITHUB_PATH"
- uses: baptiste0928/cargo-install@v3
with:
crate: cargo-about
- name: Prepare licenses
run: bash -x ../../scripts/prepare_binary_package.sh ../..
working-directory: api/cpp/
- 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.host == 'windows-2022'
- name: C++ Build
uses: lukka/[email protected]
with:
cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
cmakeListsTxtPath: CMakeLists.txt
cmakeAppendedArgs: "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DRust_CARGO_TARGET=${{ matrix.target }} -DSLINT_LIBRARY_CARGO_FLAGS='-Zbuild-std=core,alloc' ${{ env.SLINT_MCU_FEATURES }} ${{ matrix.build_flags }}"
buildDirectory: ${{ runner.workspace }}/cppbuild
buildWithCMakeArgs: "--config Release"
- name: cpack
working-directory: ${{ runner.workspace }}/cppbuild
run: cpack -G TGZ
- name: "Upload C++ packages"
uses: actions/upload-artifact@v4
with:
name: cpp_mcu_bin-${{ runner.os }}-${{ runner.arch }}-${{ matrix.target }}
path: ${{ runner.workspace }}/cppbuild/Slint-cpp-*
4 changes: 4 additions & 0 deletions api/cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,10 @@ else()
set(CPACK_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
endif()

if (Rust_CARGO_TARGET)
set(CPACK_SYSTEM_NAME "${CPACK_SYSTEM_NAME}-${Rust_CARGO_TARGET}")
endif()

include(CPack)

if(SLINT_BUILD_TESTING)
Expand Down

0 comments on commit c47b6c3

Please sign in to comment.