Browse Source

Fix macOS C.I.

christophe 11 months ago
parent
commit
abcc96b4b9
4 changed files with 68 additions and 14 deletions
  1. 61 9
      .github/workflows/ci.yml
  2. 2 2
      CMakeLists.txt
  3. 4 2
      glm/detail/func_common_simd.inl
  4. 1 1
      test/gtc/gtc_type_aligned.cpp

+ 61 - 9
.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
- 
+
+  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
+
+ 

+ 2 - 2
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()

+ 4 - 2
glm/detail/func_common_simd.inl

@@ -572,8 +572,10 @@ namespace glm {
 		template<length_t L, qualifier Q>
 		struct compute_splat<L, float, Q, true> {
 			template<int c>
-			GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<L, float, Q> call(vec<L, float, Q> const&)
-			{}
+			GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<L, float, Q> call(vec<L, float, Q> const& a)
+			{
+				(void)a;
+			}
 
 			template<>
 			GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<L, float, Q> call<0>(vec<L, float, Q> const& a)

+ 1 - 1
test/gtc/gtc_type_aligned.cpp

@@ -1,6 +1,6 @@
 #include <glm/glm.hpp>
 
-#if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
+#if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE && !defined(GLM_FORCE_NEON)
 #include <glm/gtc/type_aligned.hpp>
 #include <glm/gtc/type_precision.hpp>
 #include <glm/ext/scalar_relational.hpp>