From 0e871450a6cfa9d9ff2683ebc3be1e1e7ca6f2a8 Mon Sep 17 00:00:00 2001 From: christophe Date: Tue, 26 Dec 2023 00:01:23 +0100 Subject: [PATCH] Refactor Visual Studio C.I. --- .github/workflows/ci.yml | 117 ++++++++++++++++++++++++++++++++++++--- glm/detail/setup.hpp | 2 +- 2 files changed, 111 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eccca7335..ed4b3fb77 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,13 +7,11 @@ on: types: [opened, edited, reopened] jobs: - windows-latest: + windows-vc-latest: runs-on: windows-latest strategy: fail-fast: false matrix: - arch: [x64, x86] - toolset: [14.3, 15.9, 16.8] std: [98, 11, 14, 17, 20] config: [Debug, Release] @@ -29,9 +27,75 @@ jobs: run: | ls ${{ github.workspace }} - run: echo "🍏 This job's status is ${{ job.status }}." - - uses: TheMrMilchmann/setup-msvc-dev@v3 + - name: Checkout + uses: actions/checkout@v4.1.1 + - name: Configure Project + uses: threeal/cmake-action@v1.3.0 + - name: CMake Version + run: cmake --version + - run: cmake -S. -B ./build_auto + - run: cmake -S. -B ./build_pure_std -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON + - run: cmake -S. -B ./build_pure_ext -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON + - run: cmake -S. -B ./build_sse2_std -DGLM_TEST_ENABLE_SIMD_SSE2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON + - run: cmake -S. -B ./build_sse2_ext -DGLM_TEST_ENABLE_SIMD_SSE2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON + - run: cmake -S. -B ./build_avx1_std -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON + - run: cmake -S. -B ./build_avx1_ext -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON + - run: cmake -S. -B ./build_avx2_std -DGLM_TEST_ENABLE_SIMD_AVX2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON + - run: cmake -S. -B ./build_avx2_ext -DGLM_TEST_ENABLE_SIMD_AVX2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON + - run: cmake --build ./build_auto --config ${{matrix.config}} + - run: cmake --build ./build_pure_std --config ${{matrix.config}} + - run: cmake --build ./build_pure_ext --config ${{matrix.config}} + - run: cmake --build ./build_sse2_std --config ${{matrix.config}} + - run: cmake --build ./build_sse2_ext --config ${{matrix.config}} + - run: cmake --build ./build_avx1_std --config ${{matrix.config}} + - run: cmake --build ./build_avx1_ext --config ${{matrix.config}} + - run: cmake --build ./build_avx2_std --config ${{matrix.config}} + - run: cmake --build ./build_avx2_ext --config ${{matrix.config}} + - run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto + - run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std + - run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext + - run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std + - run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_ext + - run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_std + - run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext + - run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_std + - run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_ext + windows-vc-old: + runs-on: windows-latest + strategy: + fail-fast: false + matrix: + arch: [x64, x86] + toolset: [14.0, 14.1, 14.2] + std: [98] + config: [Debug, Release] + include: + - std: 11 + - toolset: 14.2 + include: + - std: 17 + - toolset: 14.2 + + steps: + - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." + - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!" + - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." + - name: Check out repository code + uses: actions/checkout@v4 + - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." + - run: echo "🖥️ The workflow is now ready to test your code on the runner." + - name: List files in the repository + run: | + ls ${{ github.workspace }} + - run: echo "🍏 This job's status is ${{ job.status }}." + - name: Checkout + uses: actions/checkout@v4.1.1 + - name: Configure Project + uses: threeal/cmake-action@v1.3.0 + - name: Setup Visual Studio + uses: TheMrMilchmann/setup-msvc-dev@v3 with: - arch: x64 + arch: ${{matrix.toolset}} toolset: ${{matrix.toolset}} - name: CMake Version run: cmake --version @@ -62,7 +126,46 @@ jobs: - run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext - run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_std - run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_ext - ubuntu-latest: + windows-vc-arm: + runs-on: windows-latest + strategy: + fail-fast: false + matrix: + arch: [amd64_arm64] + toolset: [14.3] + std: [98, 20] + config: [Debug, Release] + + steps: + - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." + - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!" + - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." + - name: Check out repository code + uses: actions/checkout@v4 + - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." + - run: echo "🖥️ The workflow is now ready to test your code on the runner." + - name: List files in the repository + run: | + ls ${{ github.workspace }} + - run: echo "🍏 This job's status is ${{ job.status }}." + - name: Checkout + uses: actions/checkout@v4.1.1 + - name: Configure Project + uses: threeal/cmake-action@v1.3.0 + - name: Setup Visual Studio + uses: TheMrMilchmann/setup-msvc-dev@v3 + with: + arch: ${{matrix.toolset}} + toolset: ${{matrix.toolset}} + - name: CMake Version + run: cmake --version + - run: cmake -S. -B ./build_auto + - run: cmake -S. -B ./build_pure_std -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON + - run: cmake -S. -B ./build_pure_ext -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON + - run: cmake --build ./build_auto --config ${{matrix.config}} + - run: cmake --build ./build_pure_std --config ${{matrix.config}} + - run: cmake --build ./build_pure_ext --config ${{matrix.config}} + ubuntu-gcc: runs-on: ubuntu-latest strategy: fail-fast: false @@ -118,7 +221,7 @@ jobs: - run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext - run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_std - run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_ext - macos-latest: + macos-clang: runs-on: macos-latest strategy: fail-fast: false diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp index 19953bcb4..814f23e6b 100644 --- a/glm/detail/setup.hpp +++ b/glm/detail/setup.hpp @@ -115,7 +115,7 @@ # define GLM_LANG_PLATFORM 0 # endif -# if __cplusplus > 201703L || GLM_LANG_PLATFORM > 201703L +# if __cplusplus >= 202002L || GLM_LANG_PLATFORM >= 202002L # define GLM_LANG (GLM_LANG_CXX20 | GLM_LANG_EXT) # elif __cplusplus == 201703L || GLM_LANG_PLATFORM == 201703L # define GLM_LANG (GLM_LANG_CXX17 | GLM_LANG_EXT)