Skip to content

Quantize glyph coordinates #146

Quantize glyph coordinates

Quantize glyph coordinates #146

Workflow file for this run

name: Build and Test
on:
push:
tags:
- '*'
branches:
- '*'
env:
VCPKG_OVERLAY_TRIPLETS: cmake/triplets
VCPKG_OVERLAY_PORTS: cmake/ports
AWS_ACCESS_KEY_ID: ${{secrets.GHBIN_ACCESS_KEY}}
AWS_SECRET_ACCESS_KEY: ${{secrets.GHBIN_SECRET_KEY}}
AWS_DEFAULT_REGION: fra1
AWS_ENDPOINT_URL: https://fra1.digitaloceanspaces.com
AWS_ENDPOINT_URL_S3: https://fra1.digitaloceanspaces.com
VCPKG_FEATURE_FLAGS: binarycaching
VCPKG_BINARY_SOURCES: "clear;x-aws,s3://gh-bin/bincache/,readwrite"
jobs:
deps-linux:
strategy:
matrix:
triplet: ["x64-linux"]
runs-on: ubuntu-latest
env:
VCPKG_DEFAULT_TRIPLET: ${{matrix.triplet}}
VCPKG_DEFAULT_HOST_TRIPLET: ${{matrix.triplet}}
steps:
- name: Install prerequisites
run: |
sudo apt-get update && sudo apt-get install -y ninja-build mesa-vulkan-drivers vulkan-tools wget xorg-dev libgl-dev libgl1-mesa-dev libvulkan-dev autoconf autoconf-archive libxrandr-dev libxinerama-dev libxcursor-dev mesa-common-dev libx11-xcb-dev libwayland-dev libxkbcommon-dev
- name: Checkout
uses: actions/checkout@v4
- name: Vcpkg
shell: bash
env:
TMPDIR: ${{runner.temp}}
run: |
cmake -P upload-deps.cmake
deps-windows:
strategy:
matrix:
triplet: ["x64-windows-static-md", "x86-windows-static-md", "x64-windows-static", "x86-windows-static"]
runs-on: windows-latest
env:
VCPKG_DEFAULT_TRIPLET: ${{matrix.triplet}}
VCPKG_DEFAULT_HOST_TRIPLET: ${{matrix.triplet}}
LLVM_DIR: "C:/Program Files/LLVM"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Vcpkg
run: |
cmake -P upload-deps.cmake
deps-macos:
strategy:
matrix:
triplet: ["x64-osx", "arm64-osx"]
runs-on: macos-latest
env:
VCPKG_DEFAULT_TRIPLET: ${{matrix.triplet}}
VCPKG_DEFAULT_HOST_TRIPLET: ${{matrix.triplet}}
VCPKG_ROOT: "$HOME/vcpkg"
steps:
- name: Install prerequisites
run: |
brew install ninja autoconf automake autoconf-archive
git clone /~https://github.com/microsoft/vcpkg "$HOME/vcpkg"
$HOME/vcpkg/bootstrap-vcpkg.sh -disableMetrics
echo "$HOME/vcpkg" >> "$GITHUB_PATH"
- name: Checkout
uses: actions/checkout@v4
- name: Vcpkg
run: |
cmake -P upload-deps.cmake
build-macos:
strategy:
matrix:
include:
- triplet: "x64-osx"
arch: x86_64
- triplet: "arm64-osx"
arch: arm64
runs-on: macos-latest
needs: deps-macos
env:
VCPKG_DEFAULT_TRIPLET: ${{matrix.triplet}}
VCPKG_DEFAULT_HOST_TRIPLET: ${{matrix.triplet}}
VCPKG_ROOT: "$HOME/vcpkg"
steps:
- name: Install prerequisites
run: |
brew install ninja autoconf automake autoconf-archive
git clone /~https://github.com/microsoft/vcpkg "$HOME/vcpkg"
$HOME/vcpkg/bootstrap-vcpkg.sh -disableMetrics
echo "VCPKG_INSTALLATION_ROOT=$HOME/vcpkg" >> $GITHUB_ENV
echo "$HOME/vcpkg" >> "$GITHUB_PATH"
- name: Checkout
uses: actions/checkout@v4
- name: Acquire dependencies
run: |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake
- name: Build
run: |
cmake -GNinja -S . -B build-release -DBRISK_TESTS=OFF -DBRISK_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DCMAKE_OSX_ARCHITECTURES=${{matrix.arch}} -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release
cmake --build build-release --target install
cmake -GNinja -S . -B build-debug -DBRISK_TESTS=OFF -DBRISK_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DCMAKE_OSX_ARCHITECTURES=${{matrix.arch}} -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Debug
cmake --build build-debug --target install
cd dist
cmake -E tar cJ "${{github.workspace}}/Brisk-${{github.ref_type == 'tag' && github.ref_name || github.sha}}-${{matrix.triplet}}.tar.xz" .
- name: Binaries
uses: actions/upload-artifact@v4
with:
name: ${{matrix.triplet}}
path: |
Brisk-*.tar.xz
Brisk-Dependencies-*.7z
build-linux:
strategy:
matrix:
triplet: ["x64-linux"]
runs-on: ubuntu-latest
needs: deps-linux
env:
VCPKG_DEFAULT_TRIPLET: ${{matrix.triplet}}
VCPKG_DEFAULT_HOST_TRIPLET: ${{matrix.triplet}}
steps:
- name: Install prerequisites
run: |
sudo apt-get update && sudo apt-get install -y ninja-build mesa-vulkan-drivers vulkan-tools wget xorg-dev libgl-dev libgl1-mesa-dev libvulkan-dev autoconf autoconf-archive libxrandr-dev libxinerama-dev libxcursor-dev mesa-common-dev libx11-xcb-dev libwayland-dev libxkbcommon-dev
wget -O - https://apt.llvm.org/llvm.sh | sudo bash -s - 19
- name: Checkout
uses: actions/checkout@v4
- name: Acquire dependencies
run: |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake
- name: Build
run: |
cmake -GNinja -S . -B build-release -DBRISK_TESTS=OFF -DBRISK_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_C_COMPILER=clang-19
cmake --build build-release --target install
cmake -GNinja -S . -B build-debug -DBRISK_TESTS=OFF -DBRISK_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_C_COMPILER=clang-19
cmake --build build-debug --target install
cd dist
cmake -E tar cJ "${{github.workspace}}/Brisk-${{github.ref_type == 'tag' && github.ref_name || github.sha}}-${{matrix.triplet}}.tar.xz" .
- name: Binaries
uses: actions/upload-artifact@v4
with:
name: ${{matrix.triplet}}
path: |
Brisk-*.tar.xz
Brisk-Dependencies-*.7z
build-windows:
strategy:
matrix:
include:
- triplet: "x64-windows-static-md"
arch: x64
flags: ""
- triplet: "x86-windows-static-md"
arch: x86
flags: "-m32"
- triplet: "x64-windows-static"
arch: x64
flags: ""
- triplet: "x86-windows-static"
arch: x86
flags: "-m32"
runs-on: windows-latest
needs: deps-windows
env:
VCPKG_DEFAULT_TRIPLET: ${{matrix.triplet}}
VCPKG_DEFAULT_HOST_TRIPLET: ${{matrix.triplet}}
CXXFLAGS: ${{matrix.flags}}
CFLAGS: ${{matrix.flags}}
LLVM_DIR: "C:/Program Files/LLVM"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Acquire dependencies
run: |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake
- name: Build
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{matrix.arch}}
cmake -GNinja -S . -B build-release -DBRISK_TESTS=OFF -DBRISK_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_TARGET_TRIPLET=%VCPKG_DEFAULT_TRIPLET% -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DBRISK_WEBGPU=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER="%LLVM_DIR%/bin/clang-cl.exe" -DCMAKE_C_COMPILER="%LLVM_DIR%/bin/clang-cl.exe" -DCMAKE_LINKER="%LLVM_DIR%/bin/lld-link.exe"
cmake --build build-release --target install
cmake -GNinja -S . -B build-debug -DBRISK_TESTS=OFF -DBRISK_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_TARGET_TRIPLET=%VCPKG_DEFAULT_TRIPLET% -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DBRISK_WEBGPU=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER="%LLVM_DIR%/bin/clang-cl.exe" -DCMAKE_C_COMPILER="%LLVM_DIR%/bin/clang-cl.exe" -DCMAKE_LINKER="%LLVM_DIR%/bin/lld-link.exe"
cmake --build build-debug --target install
cd dist
cmake -E tar cJ "${{github.workspace}}/Brisk-${{github.ref_type == 'tag' && github.ref_name || github.sha}}-${{matrix.triplet}}.tar.xz" .
- name: Binaries
uses: actions/upload-artifact@v4
with:
name: ${{matrix.triplet}}
path: |
Brisk-*.tar.xz
Brisk-Dependencies-*.7z
ubuntu-ninja-clang-x86_64:
runs-on: ubuntu-latest
needs: deps-linux
env:
VCPKG_DEFAULT_TRIPLET: x64-linux
VCPKG_DEFAULT_HOST_TRIPLET: x64-linux
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install prerequisites
run: |
sudo apt-get update && sudo apt-get install -y ninja-build mesa-vulkan-drivers vulkan-tools wget xorg-dev libgl-dev libgl1-mesa-dev libvulkan-dev autoconf autoconf-archive libxrandr-dev libxinerama-dev libxcursor-dev mesa-common-dev libx11-xcb-dev libwayland-dev libxkbcommon-dev
wget -O - https://apt.llvm.org/llvm.sh | sudo bash -s - 19
- name: Acquire dependencies
run: |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake
- name: Configure
run: |
cmake -GNinja -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DBRISK_LOG_TO_STDERR=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_C_COMPILER=clang-19
- name: Build
run: |
cmake --build build
- name: Test
run: |
WGPU_LONG_TIMEOUT=1 ctest --test-dir build --output-on-failure -E "window_autotests"
- name: Upload test artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-artifacts-${{github.job}}
path: |
build/*.png
build/*.log
ubuntu-make-gcc-x86_64:
runs-on: ubuntu-24.04
needs: deps-linux
env:
VCPKG_DEFAULT_TRIPLET: x64-linux
VCPKG_DEFAULT_HOST_TRIPLET: x64-linux
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install prerequisites
run: |
sudo apt-get update && sudo apt-get install -y gcc-14 g++-14 ninja-build mesa-vulkan-drivers vulkan-tools wget xorg-dev libgl-dev libgl1-mesa-dev libvulkan-dev autoconf autoconf-archive libxrandr-dev libxinerama-dev libxcursor-dev mesa-common-dev libx11-xcb-dev libwayland-dev libxkbcommon-dev
- name: Acquire dependencies
run: |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake
- name: Configure
run: |
cmake -G"Unix Makefiles" -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DBRISK_LOG_TO_STDERR=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_C_COMPILER=gcc-14
- name: Build
run: |
cmake --build build
- name: Test
run: |
WGPU_LONG_TIMEOUT=1 ctest --test-dir build --output-on-failure -E "window_autotests"
- name: Upload test artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-artifacts-${{github.job}}
path: |
build/*.png
build/*.log
windows-ninja-clang-x86-64:
runs-on: windows-latest
needs: deps-windows
env:
VCPKG_DEFAULT_TRIPLET: x64-windows-static-md
VCPKG_DEFAULT_HOST_TRIPLET: x64-windows-static-md
LLVM_DIR: C:/Program Files/LLVM
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install prerequisites
run: |
choco install ninja --no-progress -y
- name: Acquire dependencies
run: |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake
- name: Configure
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
cmake -GNinja -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_TARGET_TRIPLET=%VCPKG_DEFAULT_TRIPLET% -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DBRISK_WEBGPU=ON -DBRISK_LOG_TO_STDERR=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_COMPILER="C:/Program Files/LLVM/bin/clang-cl.exe" -DCMAKE_C_COMPILER="C:/Program Files/LLVM/bin/clang-cl.exe" -DCMAKE_LINKER="C:/Program Files/LLVM/bin/lld-link.exe"
- name: Build
run: |
cmake --build build
- name: Test
run: |
ctest --test-dir build --output-on-failure
- name: Upload test artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-artifacts-${{github.job}}
path: |
build/*.png
build/*.log
windows-vs-x86:
runs-on: windows-latest
needs: deps-windows
env:
VCPKG_DEFAULT_TRIPLET: x86-windows-static-md
VCPKG_DEFAULT_HOST_TRIPLET: x86-windows-static-md
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Acquire dependencies
run: |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake
- name: Configure
shell: cmd
run: |
cmake -G"Visual Studio 17 2022" -A Win32 -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_TARGET_TRIPLET=%VCPKG_DEFAULT_TRIPLET% -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DBRISK_WEBGPU=ON -DBRISK_LOG_TO_STDERR=ON
- name: Build
run: |
cmake --build build --config RelWithDebInfo
- name: Test
run: |
ctest --test-dir build --build-config RelWithDebInfo --output-on-failure
- name: Upload test artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-artifacts-${{github.job}}
path: |
build/*.png
build/*.log
windows-vs-clangcl-x86_64:
runs-on: windows-latest
needs: deps-windows
env:
VCPKG_DEFAULT_TRIPLET: x64-windows-static
VCPKG_DEFAULT_HOST_TRIPLET: x64-windows-static
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Acquire dependencies
run: |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake
- name: Configure
shell: cmd
run: |
cmake -G"Visual Studio 17 2022" -A x64 -T ClangCL -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DVCPKG_TARGET_TRIPLET=%VCPKG_DEFAULT_TRIPLET% -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DBRISK_WEBGPU=ON -DBRISK_LOG_TO_STDERR=ON
- name: Build
run: |
cmake --build build --config RelWithDebInfo
- name: Test
run: |
ctest --test-dir build --build-config RelWithDebInfo --output-on-failure
- name: Upload test artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-artifacts-${{github.job}}
path: |
build/*.png
build/*.log
macos-ninja-clang-arm64:
runs-on: macos-latest
needs: deps-macos
env:
VCPKG_DEFAULT_TRIPLET: arm64-osx
VCPKG_DEFAULT_HOST_TRIPLET: arm64-osx
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install prerequisites
run: |
brew install ninja autoconf automake autoconf-archive
git clone /~https://github.com/microsoft/vcpkg "$HOME/vcpkg"
$HOME/vcpkg/bootstrap-vcpkg.sh -disableMetrics
echo "VCPKG_INSTALLATION_ROOT=$HOME/vcpkg" >> $GITHUB_ENV
echo "$HOME/vcpkg" >> "$GITHUB_PATH"
- name: Acquire dependencies
run: |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake
- name: Configure
run: |
cmake -GNinja -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DCMAKE_OSX_ARCHITECTURES=arm64 -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DBRISK_LOG_TO_STDERR=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
- name: Build
run: |
cmake --build build
- name: Test
run: |
ctest --test-dir build --output-on-failure
- name: Upload test artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-artifacts-${{github.job}}
path: |
build/*.png
build/*.log
macos-ninja-clang-x86_64:
runs-on: macos-13
needs: deps-macos
env:
VCPKG_DEFAULT_TRIPLET: x64-osx
VCPKG_DEFAULT_HOST_TRIPLET: x64-osx
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install prerequisites
run: |
brew install ninja autoconf automake autoconf-archive
- name: Acquire dependencies
run: |
cmake -DDEP_BUILD=OFF -P acquire-deps.cmake
- name: Configure
run: |
cmake -GNinja -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DVCPKG_MANIFEST_MODE=OFF -DCMAKE_OSX_ARCHITECTURES=x86_64 -DVCPKG_INSTALLED_DIR=vcpkg_installed -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DBRISK_LOG_TO_STDERR=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
- name: Build
run: |
cmake --build build
- name: Test
run: |
ctest --test-dir build --output-on-failure
- name: Upload test artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-artifacts-${{github.job}}
path: |
build/*.png
build/*.log
upload-release:
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
permissions:
contents: write
needs: [build-windows, build-linux, build-macos]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true
- name: Release
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
run: >-
gh release create --draft --notes "Draft Release" --title "Brisk ${{github.ref_name}}"
${{github.ref_name}}
Brisk-*