name: configs

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-24.04
    strategy:
      fail-fast: false
      matrix:
        config:
          - HB_DISABLE_DEPRECATED
          - HB_MINI
          - HB_LEAN
          - HB_TINY
          - HB_NO_DRAW
          - HB_NO_PAINT

    name: ${{ matrix.config }}

    steps:
    - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
    - name: Create main.cc
      run: |
        cat <<EOF > main.cc
        #include "src/harfbuzz.cc"
        int main() { return 0; }
        EOF
        cat <<EOF > subset.cc
        #include "src/harfbuzz-subset.cc"
        EOF
    - name: install dependencies
      run: sudo apt-get install gcc
    - name: Build with ${{ matrix.config }}
      run: g++ -std=c++11 main.cc -D${{ matrix.config }}
    - name: Build subset library with ${{ matrix.config }}
      run: g++ -std=c++11 -c subset.cc -D${{ matrix.config }}
