From abcc96b4b956adb7161084c0af7166e58d3a0549 Mon Sep 17 00:00:00 2001 From: christophe Date: Sun, 19 Jan 2025 10:29:18 +0100 Subject: [PATCH] Fix macOS C.I. --- .github/workflows/ci.yml | 70 ++++++++++++++++++++++++++++----- CMakeLists.txt | 4 +- glm/detail/func_common_simd.inl | 6 ++- test/gtc/gtc_type_aligned.cpp | 2 +- 4 files changed, 68 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c8b899c61d..aa38cff623 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,6 +2,9 @@ name: ci run-name: ${{ github.actor }} is testing out GitHub Actions 🚀 on: + pull_request: + branches: + - main push: workflow_dispatch: @@ -68,7 +71,7 @@ jobs: - name: Run with GLM_ENABLE_SIMD_SSE2 run: | - cmake -S. -B ./build_sse2_std -T ${{matrix.toolkit}} -DGLM_BUILD_TESTS=ON -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON + cmake -S. -B ./build_sse2_std -T ${{matrix.toolkit}} -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_SSE2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON cmake --build ./build_sse2_std --config ${{matrix.config}} ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std @@ -149,7 +152,7 @@ jobs: - name: Run with GLM_ENABLE_SIMD_SSE2 run: | - cmake -S. -B ./build_sse2_std -DGLM_BUILD_TESTS=ON -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON + cmake -S. -B ./build_sse2_std -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_SSE2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON cmake --build ./build_sse2_std --config ${{matrix.config}} ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std - name: Run with GLM_ENABLE_SIMD_SSE2 and language extensions @@ -180,17 +183,14 @@ jobs: cmake --build ./build_avx2_ext --config ${{matrix.config}} ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_ext - macos: + macos-13: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: [macos-latest, macos-13] + os: [macos-13] std: [98, 11, 14, 17, 20] config: [Debug, Release] - exclude: - - os: macos-13 - std: 20 steps: - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." @@ -225,7 +225,7 @@ jobs: - name: Run with GLM_ENABLE_SIMD_SSE2 run: | - cmake -S. -B ./build_sse2_std -DGLM_BUILD_TESTS=ON -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON + cmake -S. -B ./build_sse2_std -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_SSE2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON cmake --build ./build_sse2_std --config ${{matrix.config}} ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std - name: Run with GLM_ENABLE_SIMD_SSE2 and language extensions @@ -244,4 +244,56 @@ jobs: cmake -S. -B ./build_avx1_ext -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_AVX=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON cmake --build ./build_avx1_ext --config ${{matrix.config}} ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext - \ No newline at end of file + + macos-latest: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [macos-latest] + std: [98, 11, 14, 17, 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: CMake Version + run: cmake --version + - name: Run with automagic detection + run: | + cmake -S. -B ./build_auto -DGLM_BUILD_TESTS=ON + cmake --build ./build_auto --config ${{matrix.config}} + ctest --rerun-failed --output-on-failure -C ${{matrix.config}} --test-dir ./build_auto + + - name: Run with GLM_FORCE_PURE + run: | + cmake -S. -B ./build_pure_std -DGLM_BUILD_TESTS=ON -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON + cmake --build ./build_pure_std --config ${{matrix.config}} + ctest --rerun-failed --output-on-failure -C ${{matrix.config}} --test-dir ./build_pure_std + - name: Run with GLM_FORCE_PURE and language extensions + run: | + cmake -S. -B ./build_pure_ext -DGLM_BUILD_TESTS=ON -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON + cmake --build ./build_pure_ext --config ${{matrix.config}} + ctest --rerun-failed --output-on-failure -C ${{matrix.config}} --test-dir ./build_pure_ext + + - name: Run with GLM_ENABLE_SIMD_NEON + run: | + cmake -S. -B ./build_neon_std -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_NEON=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON + cmake --build ./build_neon_std --config ${{matrix.config}} + ctest --rerun-failed --output-on-failure -C ${{matrix.config}} --test-dir ./build_neon_std + - name: Run with GLM_ENABLE_SIMD_NEON and language extensions + run: | + cmake -S. -B ./build_neon_ext -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_NEON=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON + cmake --build ./build_neon_ext --config ${{matrix.config}} + ctest --rerun-failed --output-on-failure -C ${{matrix.config}} --test-dir ./build_neon_ext + + diff --git a/CMakeLists.txt b/CMakeLists.txt index f627226795..3fdce071b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,7 +150,7 @@ option(GLM_ENABLE_SIMD_SSE4_1 "Enable SSE 4.1 optimizations" OFF) option(GLM_ENABLE_SIMD_SSE4_2 "Enable SSE 4.2 optimizations" OFF) option(GLM_ENABLE_SIMD_AVX "Enable AVX optimizations" OFF) option(GLM_ENABLE_SIMD_AVX2 "Enable AVX2 optimizations" OFF) -option(GLM_TEST_ENABLE_SIMD_NEON "Enable ARM NEON optimizations" OFF) +option(GLM_ENABLE_SIMD_NEON "Enable ARM NEON optimizations" OFF) option(GLM_FORCE_PURE "Force 'pure' instructions" OFF) if(GLM_FORCE_PURE) @@ -244,7 +244,7 @@ elseif(GLM_ENABLE_SIMD_SSE2) add_compile_options(/arch:SSE2) endif() message(STATUS "GLM: SSE2 instruction set") -elseif(GLM_TEST_ENABLE_SIMD_NEON) +elseif(GLM_ENABLE_SIMD_NEON) add_definitions(-DGLM_FORCE_NEON) message(STATUS "GLM: ARM NEON instruction set") endif() diff --git a/glm/detail/func_common_simd.inl b/glm/detail/func_common_simd.inl index 9c77cc9dea..818bb1f56e 100644 --- a/glm/detail/func_common_simd.inl +++ b/glm/detail/func_common_simd.inl @@ -572,8 +572,10 @@ namespace glm { template struct compute_splat { template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec call(vec const&) - {} + GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec call(vec const& a) + { + (void)a; + } template<> GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec call<0>(vec const& a) diff --git a/test/gtc/gtc_type_aligned.cpp b/test/gtc/gtc_type_aligned.cpp index 1b62c03da0..b63df259fe 100644 --- a/test/gtc/gtc_type_aligned.cpp +++ b/test/gtc/gtc_type_aligned.cpp @@ -1,6 +1,6 @@ #include -#if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE +#if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE && !defined(GLM_FORCE_NEON) #include #include #include