name: Build on: [ push, pull_request ] jobs: build: name: ${{ matrix.config.name }} SCALAR_DOUBLE=${{ matrix.scalar_double }} runs-on: ${{ matrix.config.os }} if: "!contains(github.event.head_commit.message, '[skip ci]')" strategy: fail-fast: false matrix: scalar_double: ["OFF", "ON"] config: - { name: "Windows MSVC", os: windows-latest, generator: "Ninja", conda_library_dir: "Library" } - { name: "macOS Clang", os: macos-latest, generator: "Ninja", conda_library_dir: "." } steps: - name: Checkout uses: actions/checkout@v4 with: submodules: recursive - name: Install Dependencies uses: conda-incubator/setup-miniconda@v3 with: activate-environment: CCCoreLib auto-activate-base: false environment-file: .ci/conda.yml mamba-version: '*' - name: Configure MSVC console (Windows) if: matrix.config.os == 'windows-latest' uses: ilammy/msvc-dev-cmd@v1 - name: Set environment for MSVC (Windows) if: matrix.config.os == 'windows-latest' run: | # Set these env vars so cmake picks the correct compiler # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#environment-files echo "CXX=cl.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append echo "CC=cl.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - name: Configure (macOS) if: matrix.config.os == 'macos-latest' shell: bash -l {0} run: | mkdir cccorelib-build export CONDA_LIB_DIR="$CONDA_PREFIX/${{ matrix.config.conda_library_dir }}" cmake \ -B cccorelib-build \ -G "${{ matrix.config.generator }}" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH="$CONDA_LIB_DIR" \ -DCCCORELIB_SCALAR_DOUBLE=${{ matrix.scalar_double }} \ -DCCCORELIB_USE_CGAL=FALSE \ -DCCCORELIB_USES_TBB=TRUE \ . - name: Configure (Windows) if: matrix.config.os == 'windows-latest' shell: bash -l {0} run: | mkdir build # DGM: without caching, using conda takes too long. # Therefore we can't set -DCCCORELIB_USE_CGAL=TRUE cmake \ -B cccorelib-build \ -G "${{ matrix.config.generator }}" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH="$CONDA_LIB_DIR" \ -DCCCORELIB_SCALAR_DOUBLE=${{ matrix.scalar_double }} \ -DCCCORELIB_USE_CGAL=FALSE \ -DCCCORELIB_USES_TBB=TRUE \ . - name: Build run: cmake --build cccorelib-build --parallel ubuntu-build: name: Ubuntu ${{ matrix.compiler }} SCALAR_DOUBLE=${{ matrix.scalar_double }} runs-on: ubuntu-22.04 if: "!contains(github.event.head_commit.message, '[skip ci]')" strategy: fail-fast: false matrix: scalar_double: [ "OFF", "ON" ] compiler: ["GCC", "Clang"] steps: - name: Checkout uses: actions/checkout@v3 with: submodules: recursive - name: Install Dependencies run: > sudo apt-get update -qq sudo apt-get install -qy cmake ninja-build qtbase5-dev qttools5-dev qttools5-dev-tools libtbb-dev libcgal-dev libcgal-qt5-dev - name: Setup GCC if: matrix.compiler == 'GCC' run: | echo "CC=gcc" >> $GITHUB_ENV echo "CXX=g++" >> $GITHUB_ENV - name: Setup Clang if: matrix.compiler == 'Clang' run: | echo "CC=clang" >> $GITHUB_ENV echo "CXX=clang++" >> $GITHUB_ENV - name: Configure cmake run: > mkdir cccorelib-build cmake -B cccorelib-build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release -DCCCORELIB_SCALAR_DOUBLE=${{ matrix.scalar_double }} -DCCCORELIB_USE_CGAL=TRUE -DCCCORELIB_USES_TBB=TRUE . - name: Build run: cmake --build cccorelib-build --parallel