Skip to content

feat(text): add international layout foundation #40

feat(text): add international layout foundation

feat(text): add international layout foundation #40

Workflow file for this run

name: Windows MinGW CI
on:
push:
branches: [master, main]
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
build-and-test:
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
include:
- name: gcc-debug
configuration: Debug
configure_preset: gcc-debug-tests
build_preset: build-gcc-debug-tests
test_preset: test-gcc-debug
compiler_c: gcc
compiler_cxx: g++
packages: >-
mingw-w64-ucrt-x86_64-toolchain
mingw-w64-ucrt-x86_64-cmake
mingw-w64-ucrt-x86_64-ninja
- name: gcc-release
configuration: Release
configure_preset: gcc-release-tests
build_preset: build-gcc-release-tests
test_preset: test-gcc-release
compiler_c: gcc
compiler_cxx: g++
packages: >-
mingw-w64-ucrt-x86_64-toolchain
mingw-w64-ucrt-x86_64-cmake
mingw-w64-ucrt-x86_64-ninja
- name: clang-debug
configuration: Debug
configure_preset: clang-debug-tests
build_preset: build-clang-debug-tests
test_preset: test-clang-debug
compiler_c: clang
compiler_cxx: clang++
packages: >-
mingw-w64-ucrt-x86_64-toolchain
mingw-w64-ucrt-x86_64-clang
mingw-w64-ucrt-x86_64-lld
mingw-w64-ucrt-x86_64-cmake
mingw-w64-ucrt-x86_64-ninja
- name: clang-release
configuration: Release
configure_preset: clang-release-tests
build_preset: build-clang-release-tests
test_preset: test-clang-release
compiler_c: clang
compiler_cxx: clang++
packages: >-
mingw-w64-ucrt-x86_64-toolchain
mingw-w64-ucrt-x86_64-clang
mingw-w64-ucrt-x86_64-lld
mingw-w64-ucrt-x86_64-cmake
mingw-w64-ucrt-x86_64-ninja
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up MSYS2 UCRT64
uses: msys2/setup-msys2@v2
with:
msystem: UCRT64
update: true
install: ${{ matrix.packages }}
- name: Configure
shell: msys2 {0}
run: cmake --preset ${{ matrix.configure_preset }}
- name: Build
shell: msys2 {0}
run: cmake --build --preset ${{ matrix.build_preset }} --parallel
- name: Test
shell: msys2 {0}
run: ctest --preset ${{ matrix.test_preset }}
- name: Install smoke test
shell: msys2 {0}
run: >-
cmake --install build/${{ matrix.configure_preset }}
--prefix build/install/${{ matrix.name }}
- name: Configure external engine consumer
shell: msys2 {0}
run: >-
cmake -S Tests/Consumer
-B build/consumer/${{ matrix.name }}
-G Ninja
-DCMAKE_BUILD_TYPE=${{ matrix.configuration }}
-DCMAKE_C_COMPILER=${{ matrix.compiler_c }}
-DCMAKE_CXX_COMPILER=${{ matrix.compiler_cxx }}
-DCMAKE_PREFIX_PATH="$PWD/build/install/${{ matrix.name }}"
- name: Build external engine consumer
shell: msys2 {0}
run: cmake --build build/consumer/${{ matrix.name }} --parallel
- name: Run external engine consumer
shell: msys2 {0}
run: ./build/consumer/${{ matrix.name }}/PyramidConsumer.exe
- name: Configure standalone owned-library consumer
shell: msys2 {0}
run: >-
cmake -S Tests/LibrariesConsumer
-B build/libraries-consumer/${{ matrix.name }}
-G Ninja
-DCMAKE_BUILD_TYPE=${{ matrix.configuration }}
-DCMAKE_C_COMPILER=${{ matrix.compiler_c }}
-DCMAKE_CXX_COMPILER=${{ matrix.compiler_cxx }}
-DCMAKE_PREFIX_PATH="$PWD/build/install/${{ matrix.name }}"
- name: Build standalone owned-library consumer
shell: msys2 {0}
run: cmake --build build/libraries-consumer/${{ matrix.name }} --parallel
- name: Run standalone owned-library consumer
shell: msys2 {0}
run: ./build/libraries-consumer/${{ matrix.name }}/PyramidLibrariesConsumer.exe
- name: Configure standalone image consumer
shell: msys2 {0}
run: >-
cmake -S Tests/ImageConsumer
-B build/image-consumer/${{ matrix.name }}
-G Ninja
-DCMAKE_BUILD_TYPE=${{ matrix.configuration }}
-DCMAKE_C_COMPILER=${{ matrix.compiler_c }}
-DCMAKE_CXX_COMPILER=${{ matrix.compiler_cxx }}
-DCMAKE_PREFIX_PATH="$PWD/build/install/${{ matrix.name }}"
- name: Build standalone image consumer
shell: msys2 {0}
run: cmake --build build/image-consumer/${{ matrix.name }} --parallel
- name: Run standalone image consumer
shell: msys2 {0}
run: ./build/image-consumer/${{ matrix.name }}/PyramidImageConsumer.exe
- name: Configure standalone model consumer
shell: msys2 {0}
run: >-
cmake -S Tests/ModelConsumer
-B build/model-consumer/${{ matrix.name }}
-G Ninja
-DCMAKE_BUILD_TYPE=${{ matrix.configuration }}
-DCMAKE_C_COMPILER=${{ matrix.compiler_c }}
-DCMAKE_CXX_COMPILER=${{ matrix.compiler_cxx }}
-DCMAKE_PREFIX_PATH="$PWD/build/install/${{ matrix.name }}"
- name: Build standalone model consumer
shell: msys2 {0}
run: cmake --build build/model-consumer/${{ matrix.name }} --parallel
- name: Run standalone model consumer
shell: msys2 {0}
run: ./build/model-consumer/${{ matrix.name }}/PyramidModelConsumer.exe
- name: Configure standalone font consumer
shell: msys2 {0}
run: >-
cmake -S Tests/FontConsumer
-B build/font-consumer/${{ matrix.name }}
-G Ninja
-DCMAKE_BUILD_TYPE=${{ matrix.configuration }}
-DCMAKE_C_COMPILER=${{ matrix.compiler_c }}
-DCMAKE_CXX_COMPILER=${{ matrix.compiler_cxx }}
-DCMAKE_PREFIX_PATH="$PWD/build/install/${{ matrix.name }}"
- name: Build standalone font consumer
shell: msys2 {0}
run: cmake --build build/font-consumer/${{ matrix.name }} --parallel
- name: Run standalone font consumer
shell: msys2 {0}
run: ./build/font-consumer/${{ matrix.name }}/PyramidFontConsumer.exe
- name: Configure standalone UI consumer
shell: msys2 {0}
run: >-
cmake -S Tests/UIConsumer
-B build/ui-consumer/${{ matrix.name }}
-G Ninja
-DCMAKE_BUILD_TYPE=${{ matrix.configuration }}
-DCMAKE_C_COMPILER=${{ matrix.compiler_c }}
-DCMAKE_CXX_COMPILER=${{ matrix.compiler_cxx }}
-DCMAKE_PREFIX_PATH="$PWD/build/install/${{ matrix.name }}"
- name: Build standalone UI consumer
shell: msys2 {0}
run: cmake --build build/ui-consumer/${{ matrix.name }} --parallel
- name: Run standalone UI consumer
shell: msys2 {0}
run: ./build/ui-consumer/${{ matrix.name }}/PyramidUIConsumer.exe
- name: Upload binaries
if: always()
uses: actions/upload-artifact@v4
with:
name: pyramid-${{ matrix.name }}
path: |
build/${{ matrix.configure_preset }}/bin
build/${{ matrix.configure_preset }}/lib
if-no-files-found: warn