CI and CMake Fixes #374
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Compile project on Windows | |
name: Windows | |
on: | |
push: | |
branches: | |
- '**' | |
paths: | |
- "**" | |
- "!.github/**" | |
- ".github/workflows/Windows.yml" | |
pull_request: | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
build: | |
runs-on: ${{ matrix.cudacxx.os }} | |
strategy: | |
fail-fast: false | |
# Multiplicative build matrix | |
# optional exclude: can be partial, include: must be specific | |
matrix: | |
cudacxx: | |
- cuda: "12.0.0" | |
cuda_arch: "50" | |
hostcxx: "Visual Studio 17 2022" | |
os: windows-2022 | |
- cuda: "11.2.0" | |
cuda_arch: "35" | |
hostcxx: "Visual Studio 16 2019" | |
os: windows-2019 | |
config: | |
- name: "Release" | |
config: "Release" | |
# Name the job based on matrix/env options | |
name: "build (${{ matrix.cudacxx.cuda }}, ${{ matrix.config.name }}, ${{ matrix.cudacxx.os }})" | |
# Define job-wide env constants, and promote matrix elements to env constants for portable steps. | |
env: | |
# Define constants | |
BUILD_DIR: "build" | |
BUILD_TESTS: "OFF" | |
# Port matrix options to environment, for more portability. | |
CUDA: ${{ matrix.cudacxx.cuda }} | |
CUDA_ARCH: ${{ matrix.cudacxx.cuda_arch }} | |
HOSTCXX: ${{ matrix.cudacxx.hostcxx }} | |
OS: ${{ matrix.cudacxx.os }} | |
CONFIG: ${{ matrix.config.config }} | |
# Kept for portable steps between this and the main repository. | |
VISUALISATION: "ON" | |
# Ensure MSVC >= 1940 works with CUDA <= 12.3 | |
CUDAFLAGS: -allow-unsupported-compiler | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install CUDA (Windows) | |
if: ${{ runner.os == 'Windows' && env.CUDA != '' }} | |
shell: powershell | |
env: | |
cuda: ${{ env.CUDA }} | |
visual_studio: ${{ env.HOSTCXX }} | |
run: .github\scripts\install_cuda_windows.ps1 | |
- name: Add custom problem matchers for annotations | |
run: echo "::add-matcher::.github/problem-matchers.json" | |
- name: Configure cmake | |
run: > | |
cmake . -B "${{ env.BUILD_DIR }}" | |
-G "${{ env.HOSTCXX }}" -A x64 | |
-Werror=dev | |
-DCMAKE_WARN_DEPRECATED="OFF" | |
-DFLAMEGPU_WARNINGS_AS_ERRORS="ON" | |
-DCMAKE_CUDA_ARCHITECTURES="${{ env.CUDA_ARCH }}" | |
- name: Build | |
working-directory: ${{ env.BUILD_DIR }} | |
run: cmake --build . --config ${{ env.CONFIG }} --target ALL_BUILD --verbose -j `nproc` |