ci.yml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. name: ci
  2. run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
  3. on:
  4. pull_request:
  5. branches:
  6. - master
  7. push:
  8. workflow_dispatch:
  9. jobs:
  10. windows:
  11. runs-on: ${{ matrix.os }}
  12. strategy:
  13. fail-fast: false
  14. matrix:
  15. os: [windows-latest, windows-2022]
  16. toolkit: [v143, v142, v141, v140]
  17. std: [98, 11, 14, 17, 20]
  18. config: [Debug, Release]
  19. exclude:
  20. - os: windows-2022
  21. toolkit: v143
  22. - os: windows-2022
  23. toolkit: v142
  24. - os: windows-latest
  25. toolkit: v140
  26. - os: windows-latest
  27. toolkit: v141
  28. - os: windows-2022
  29. std: 20
  30. - os: windows-2022
  31. toolkit: v140
  32. std: 17
  33. - os: windows-2022
  34. toolkit: v140
  35. std: 14
  36. steps:
  37. - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
  38. - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
  39. - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
  40. - name: Check out repository code
  41. uses: actions/checkout@v4
  42. - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
  43. - run: echo "🖥️ The workflow is now ready to test your code on the runner."
  44. - name: List files in the repository
  45. run: |
  46. ls ${{ github.workspace }}
  47. - run: echo "🍏 This job's status is ${{ job.status }}."
  48. - name: CMake Version
  49. uses: lukka/get-cmake@latest
  50. with:
  51. cmakeVersion: 3.22.1
  52. - run: cmake --version
  53. - name: Run with automagic detection
  54. run: |
  55. cmake -S. -B ./build_auto -T ${{matrix.toolkit}} -DGLM_BUILD_TESTS=ON
  56. cmake --build ./build_auto --config ${{matrix.config}}
  57. ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto
  58. - name: Run with GLM_FORCE_PURE
  59. run: |
  60. cmake -S. -B ./build_pure_std -T ${{matrix.toolkit}} -DGLM_BUILD_TESTS=ON -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  61. cmake --build ./build_pure_std --config ${{matrix.config}}
  62. ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std
  63. - name: Run with GLM_FORCE_PURE and language extensions
  64. run: |
  65. cmake -S. -B ./build_pure_ext -T ${{matrix.toolkit}} -DGLM_BUILD_TESTS=ON -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  66. cmake --build ./build_pure_ext --config ${{matrix.config}}
  67. ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext
  68. - name: Run with GLM_ENABLE_SIMD_SSE2
  69. run: |
  70. cmake -S. -B ./build_sse2_std -T ${{matrix.toolkit}} -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_SSE2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  71. cmake --build ./build_sse2_std --config ${{matrix.config}}
  72. ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std
  73. - name: Run with GLM_ENABLE_SIMD_SSE2 and language extensions
  74. run: |
  75. cmake -S. -B ./build_sse2_ext -T ${{matrix.toolkit}} -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_SSE2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  76. cmake --build ./build_sse2_ext --config ${{matrix.config}}
  77. ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_ext
  78. - name: Run with GLM_ENABLE_SIMD_AVX
  79. run: |
  80. cmake -S. -B ./build_avx1_std -T ${{matrix.toolkit}} -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_AVX=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  81. cmake --build ./build_avx1_std --config ${{matrix.config}}
  82. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_std
  83. - name: Run with GLM_ENABLE_SIMD_AVX and language extensions
  84. run: |
  85. cmake -S. -B ./build_avx1_ext -T ${{matrix.toolkit}} -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_AVX=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  86. cmake --build ./build_avx1_ext --config ${{matrix.config}}
  87. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext
  88. - name: Run with GLM_ENABLE_SIMD_AVX2
  89. run: |
  90. cmake -S. -B ./build_avx2_std -T ${{matrix.toolkit}} -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_AVX2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  91. cmake --build ./build_avx2_std --config ${{matrix.config}}
  92. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_std
  93. - name: Run with GLM_ENABLE_SIMD_AVX2 and language extensions
  94. run: |
  95. cmake -S. -B ./build_avx2_ext -T ${{matrix.toolkit}} -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_AVX2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  96. cmake --build ./build_avx2_ext --config ${{matrix.config}}
  97. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_ext
  98. ubuntu:
  99. runs-on: ${{ matrix.os }}
  100. strategy:
  101. fail-fast: false
  102. matrix:
  103. os: [ubuntu-latest, ubuntu-22.04]
  104. std: [98, 11, 14, 17, 20]
  105. config: [Debug, Release]
  106. exclude:
  107. - os: ubuntu-22.04
  108. std: 20
  109. - os: ubuntu-latest
  110. std: 98
  111. steps:
  112. - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
  113. - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
  114. - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
  115. - name: Check out repository code
  116. uses: actions/checkout@v4
  117. - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
  118. - run: echo "🖥️ The workflow is now ready to test your code on the runner."
  119. - name: List files in the repository
  120. run: |
  121. ls ${{ github.workspace }}
  122. - run: echo "🍏 This job's status is ${{ job.status }}."
  123. - name: CMake Version
  124. uses: lukka/get-cmake@latest
  125. with:
  126. cmakeVersion: 3.22.1
  127. - run: cmake --version
  128. - name: Run with automagic detection
  129. run: |
  130. cmake -S. -B ./build_auto -DGLM_BUILD_TESTS=ON
  131. cmake --build ./build_auto --config ${{matrix.config}}
  132. ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto
  133. - name: Run with GLM_FORCE_PURE
  134. run: |
  135. cmake -S. -B ./build_pure_std -DGLM_BUILD_TESTS=ON -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  136. cmake --build ./build_pure_std --config ${{matrix.config}}
  137. ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std
  138. - name: Run with GLM_FORCE_PURE and language extensions
  139. run: |
  140. 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
  141. cmake --build ./build_pure_ext --config ${{matrix.config}}
  142. ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext
  143. - name: Run with GLM_ENABLE_SIMD_SSE2
  144. run: |
  145. cmake -S. -B ./build_sse2_std -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_SSE2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  146. cmake --build ./build_sse2_std --config ${{matrix.config}}
  147. ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std
  148. - name: Run with GLM_ENABLE_SIMD_SSE2 and language extensions
  149. run: |
  150. cmake -S. -B ./build_sse2_ext -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_SSE2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  151. cmake --build ./build_sse2_ext --config ${{matrix.config}}
  152. ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_ext
  153. - name: Run with GLM_ENABLE_SIMD_AVX
  154. run: |
  155. cmake -S. -B ./build_avx1_std -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_AVX=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  156. cmake --build ./build_avx1_std --config ${{matrix.config}}
  157. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_std
  158. - name: Run with GLM_ENABLE_SIMD_AVX and language extensions
  159. run: |
  160. 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
  161. cmake --build ./build_avx1_ext --config ${{matrix.config}}
  162. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext
  163. - name: Run with GLM_ENABLE_SIMD_AVX2
  164. run: |
  165. cmake -S. -B ./build_avx2_std -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_AVX2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  166. cmake --build ./build_avx2_std --config ${{matrix.config}}
  167. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_std
  168. - name: Run with GLM_ENABLE_SIMD_AVX2 and language extensions
  169. run: |
  170. cmake -S. -B ./build_avx2_ext -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_AVX2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  171. cmake --build ./build_avx2_ext --config ${{matrix.config}}
  172. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_ext
  173. macos-13:
  174. runs-on: ${{ matrix.os }}
  175. strategy:
  176. fail-fast: false
  177. matrix:
  178. os: [macos-13]
  179. std: [98, 11, 14, 17, 20]
  180. config: [Debug, Release]
  181. steps:
  182. - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
  183. - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
  184. - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
  185. - name: Check out repository code
  186. uses: actions/checkout@v4
  187. - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
  188. - run: echo "🖥️ The workflow is now ready to test your code on the runner."
  189. - name: List files in the repository
  190. run: |
  191. ls ${{ github.workspace }}
  192. - run: echo "🍏 This job's status is ${{ job.status }}."
  193. - name: CMake Version
  194. uses: lukka/get-cmake@latest
  195. with:
  196. cmakeVersion: 3.22.1
  197. - run: cmake --version
  198. - name: Run with automagic detection
  199. run: |
  200. cmake -S. -B ./build_auto -DGLM_BUILD_TESTS=ON
  201. cmake --build ./build_auto --config ${{matrix.config}}
  202. ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto
  203. - name: Run with GLM_FORCE_PURE
  204. run: |
  205. cmake -S. -B ./build_pure_std -DGLM_BUILD_TESTS=ON -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  206. cmake --build ./build_pure_std --config ${{matrix.config}}
  207. ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std
  208. - name: Run with GLM_FORCE_PURE and language extensions
  209. run: |
  210. 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
  211. cmake --build ./build_pure_ext --config ${{matrix.config}}
  212. ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext
  213. - name: Run with GLM_ENABLE_SIMD_SSE2
  214. run: |
  215. cmake -S. -B ./build_sse2_std -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_SSE2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  216. cmake --build ./build_sse2_std --config ${{matrix.config}}
  217. ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std
  218. - name: Run with GLM_ENABLE_SIMD_SSE2 and language extensions
  219. run: |
  220. cmake -S. -B ./build_sse2_ext -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_SSE2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  221. cmake --build ./build_sse2_ext --config ${{matrix.config}}
  222. ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_ext
  223. - name: Run with GLM_ENABLE_SIMD_AVX
  224. run: |
  225. cmake -S. -B ./build_avx1_std -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_AVX=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  226. cmake --build ./build_avx1_std --config ${{matrix.config}}
  227. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_std
  228. - name: Run with GLM_ENABLE_SIMD_AVX and language extensions
  229. run: |
  230. 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
  231. cmake --build ./build_avx1_ext --config ${{matrix.config}}
  232. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext
  233. macos-latest:
  234. runs-on: ${{ matrix.os }}
  235. strategy:
  236. fail-fast: false
  237. matrix:
  238. os: [macos-latest]
  239. std: [98, 11, 14, 17, 20]
  240. config: [Debug, Release]
  241. steps:
  242. - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
  243. - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
  244. - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
  245. - name: Check out repository code
  246. uses: actions/checkout@v4
  247. - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
  248. - run: echo "🖥️ The workflow is now ready to test your code on the runner."
  249. - name: List files in the repository
  250. run: |
  251. ls ${{ github.workspace }}
  252. - run: echo "🍏 This job's status is ${{ job.status }}."
  253. - name: CMake Version
  254. uses: lukka/get-cmake@latest
  255. with:
  256. cmakeVersion: 3.22.1
  257. - run: cmake --version
  258. - name: Run with automagic detection
  259. run: |
  260. cmake -S. -B ./build_auto -DGLM_BUILD_TESTS=ON
  261. cmake --build ./build_auto --config ${{matrix.config}}
  262. ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto
  263. - name: Run with GLM_FORCE_PURE
  264. run: |
  265. cmake -S. -B ./build_pure_std -DGLM_BUILD_TESTS=ON -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  266. cmake --build ./build_pure_std --config ${{matrix.config}}
  267. ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std
  268. - name: Run with GLM_FORCE_PURE and language extensions
  269. run: |
  270. 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
  271. cmake --build ./build_pure_ext --config ${{matrix.config}}
  272. ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext
  273. - name: Run with GLM_ENABLE_SIMD_NEON
  274. run: |
  275. cmake -S. -B ./build_neon_std -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_NEON=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  276. cmake --build ./build_neon_std --config ${{matrix.config}}
  277. ctest --verbose -C ${{matrix.config}} --test-dir ./build_neon_std
  278. - name: Run with GLM_ENABLE_SIMD_NEON and language extensions
  279. run: |
  280. 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
  281. cmake --build ./build_neon_ext --config ${{matrix.config}}
  282. ctest --verbose -C ${{matrix.config}} --test-dir ./build_neon_ext