feat(text): add international layout foundation #40
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |