diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml new file mode 100644 index 00000000..babf0585 --- /dev/null +++ b/.github/workflows/cmake.yml @@ -0,0 +1,61 @@ +name: "Build with CMake" + +on: + push: + pull_request: + workflow_dispatch: + +defaults: + run: + shell: bash + +jobs: + build: + name: ${{ matrix.toolchain }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + toolchain: + - linux-gcc + - macos-clang + - windows-msvc + configuration: + - Release + include: + - toolchain: linux-gcc + os: ubuntu-latest + compiler: gcc + - toolchain: macos-clang + os: macos-latest + compiler: clang + - toolchain: windows-msvc + os: windows-latest + compiler: msvc + - toolchain: windows-mingw + os: windows-latest + compiler: mingw + steps: + - name: Checkout Code + uses: actions/checkout@v4 + with: + fetch-depth: 5 + - name: Setup python environment + uses: actions/setup-python@v5 + with: + python-version: 3.11 + - name: Install python packages + run: | + pip install --disable-pip-version-check --user "conan>=1.60.2,<2" + - name: Build libraries with ${{ matrix.compiler }} + run: | + if [ "${{ matrix.compiler }}" == "msvc" ]; then + cmake -S . -B build -DMATIO_USE_CONAN=ON + cmake --build build --config ${{ matrix.configuration }} + elif [ "${{ matrix.compiler }}" == "mingw" ]; then + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DMATIO_USE_CONAN=ON -G "MinGW Makefiles" + cmake --build build + else + cmake -S . -B build -DCMAKE_BUILD_TYPE=${{ matrix.configuration }} -DMATIO_USE_CONAN=ON + cmake --build build + fi