name: Native Build

on: [push, pull_request]

jobs:
  build_win:
    runs-on: [windows-2022]
    strategy:
      matrix:
        toolset: [v142, v143]
        configuration: [RelWithDebInfo]
    steps:
    - uses: actions/checkout@v4
      with:
        submodules: true
    - name: Configure
      run: cmake -B build/${{matrix.toolset}} -G "Visual Studio 17 2022" -A x64 -T ${{matrix.toolset}}
    - name: Build
      run: cmake --build build/${{matrix.toolset}} --config ${{matrix.configuration}}
    - name: Upload
      uses: actions/upload-artifact@v3
      with:
        name: OcctImportJS_VS_${{matrix.toolset}}_${{matrix.configuration}}
        path: build/${{matrix.toolset}}/${{matrix.configuration}}/occt-import-js.lib

  build_mac:
    runs-on: [macos-13]
    strategy:
      matrix:
        xcode: [14.2]
        configuration: [RelWithDebInfo]
    steps:
    - uses: actions/checkout@v4
      with:
        submodules: true
    - name: Setup xcode
      if: runner.os == 'macOS'
      run: sudo xcode-select -s /Applications/Xcode_${{matrix.xcode}}.app
    - name: Configure
      run: cmake -B build/${{matrix.xcode}} -G "Xcode" -DCMAKE_OSX_ARCHITECTURES="x86_64"
    - name: Build
      run: cmake --build build/${{matrix.xcode}} --config ${{matrix.configuration}}
    - name: Upload
      uses: actions/upload-artifact@v3
      with:
        name: OcctImportJS_Xcode_${{matrix.xcode}}_${{matrix.configuration}}
        path: build/${{matrix.xcode}}/${{matrix.configuration}}/libocct-import-js.a

  publish_headers:
    runs-on: [ubuntu-latest]
    steps:
    - uses: actions/checkout@v4
      with:
        submodules: true
    - name: Upload
      uses: actions/upload-artifact@v3
      with:
        name: Headers
        path: occt-import-js/src/*.hpp
