cmake: surface headers in Visual Studio solution #283
Workflow file for this run
This file contains hidden or 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
| name: Compiler Integration Tests | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| # These jobs are correlated with the officially supported compilers | |
| # and toolsets. If you change any versions, please update README.md. | |
| jobs: | |
| gcc: | |
| strategy: | |
| matrix: | |
| gcc_version: [ 12, 13, 14 ] | |
| build_type: [ Debug, Release ] | |
| cxx_version: [ 14, 17, 20, 23 ] | |
| exclude: | |
| # https://github.com/google/googletest/issues/4232 | |
| # Looks like GoogleTest is not interested in making version 1.14 | |
| # work with gcc-12. | |
| - gcc_version: 12 | |
| cxx_version: 20 | |
| - gcc_version: 12 | |
| cxx_version: 23 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Run CMake (configure, build, test) | |
| uses: ./.github/workflows/cmake | |
| with: | |
| cmake_build_type: ${{ matrix.build_type }} | |
| cmake_cxx_compiler: g++-${{ matrix.gcc_version }} | |
| gsl_cxx_standard: ${{ matrix.cxx_version }} | |
| clang: | |
| strategy: | |
| matrix: | |
| clang_version: [ 16, 17, 18 ] | |
| build_type: [ Debug, Release ] | |
| cxx_version: [ 14, 17, 20, 23 ] | |
| exclude: | |
| # https://github.com/llvm/llvm-project/issues/93734 | |
| # Looks like clang fixed this issue in clang-18, but won't backport | |
| # the fix. | |
| - clang_version: 17 | |
| cxx_version: 23 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Run CMake (configure, build, test) | |
| uses: ./.github/workflows/cmake | |
| with: | |
| cmake_build_type: ${{ matrix.build_type }} | |
| cmake_cxx_compiler: clang++-${{ matrix.clang_version }} | |
| gsl_cxx_standard: ${{ matrix.cxx_version }} | |
| xcode: | |
| strategy: | |
| matrix: | |
| xcode_version: [ '16.4' ] | |
| build_type: [ Debug, Release ] | |
| cxx_version: [ 14, 17, 20, 23 ] | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: select xcode version | |
| run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode_version }}.app | |
| - name: Run CMake (configure, build, test) | |
| uses: ./.github/workflows/cmake | |
| with: | |
| cmake_build_type: ${{ matrix.build_type }} | |
| cmake_cxx_compiler: clang++ | |
| gsl_cxx_standard: ${{ matrix.cxx_version }} | |
| extra_cmake_args: '-DCMAKE_CXX_FLAGS="-isysroot \"$(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk\""' | |
| VisualStudio: | |
| strategy: | |
| matrix: | |
| generator: [ 'Visual Studio 17 2022' ] | |
| image: [ windows-2022, windows-2025 ] | |
| build_type: [ Debug, Release ] | |
| extra_args: [ '', '-T ClangCL' ] | |
| cxx_version: [ 14, 17, 20, 23 ] | |
| runs-on: ${{ matrix.image }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: microsoft/setup-msbuild@v2 | |
| - name: Run CMake (configure, build, test) | |
| uses: ./.github/workflows/cmake | |
| with: | |
| cmake_generator: ${{ matrix.generator }} | |
| cmake_build_type: ${{ matrix.build_type }} | |
| gsl_cxx_standard: ${{ matrix.cxx_version }} | |
| extra_cmake_args: ${{ matrix.extra_args }} | |
| build_cmd: msbuild GSL.sln | |
| test_cmd: ctest . --output-on-failure --no-compress-output | |
| shell: pwsh | |