From 75012c4f0c0b852c8bfa0b5632bf82c82f240754 Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Thu, 19 Jun 2025 17:48:03 +0800 Subject: GLM_FORCE_NEON for Windows arm64 too though there are still so many compile errors, but it should be in the right direction, cause firstly we can't let it use GLM_FORCE_SSE2 otherwise it would include x/emmintrin headers, and secondly, if none of the GLM_FORCEs is used then the errors are much fewer but related to __m128 which should be translatable by SSE2NEON (that's why I believe GLM_FORCE_NEON should be ON for Windows arm64 too). --- indra/cmake/00-Common.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/cmake/00-Common.cmake') diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 0e3b89e98e..c8520b53ab 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -33,7 +33,7 @@ add_compile_definitions( ADDRESS_SIZE=${ADDRESS_SIZE}) # -- which we do. Without one or the other, we get a ton of Boost warnings. add_compile_definitions(BOOST_BIND_GLOBAL_PLACEHOLDERS) -if(CMAKE_OSX_ARCHITECTURES MATCHES arm64 OR CMAKE_SYSTEM_PROCESSOR MATCHES aarch64) +if(CMAKE_OSX_ARCHITECTURES MATCHES arm64 OR CMAKE_SYSTEM_PROCESSOR MATCHES aarch64 OR ($ENV{MSYSTEM_CARCH} MATCHES aarch64)) add_compile_definitions(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES=1 GLM_FORCE_NEON=1 GLM_ENABLE_EXPERIMENTAL=1) else() # Force enable SSE2 instructions in GLM per the manual -- cgit v1.2.3 From f5de250c3e74ecc8eb658d0b070c0884616f041d Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Mon, 23 Jun 2025 06:24:33 +0800 Subject: Revert "GLM_FORCE_NEON for Windows arm64 too" This reverts commit 75012c4f0c0b852c8bfa0b5632bf82c82f240754. I realised I was in the wrong direction after I avoided the offending lines by setting GLM_FORCE_XYZW_ONLY, and then by setting GLM_FORCE_CXX_UNKNOWN, to end up with the same 16 __m128-related "too many initializers" errors, which I believe were just obscured by the 160 syntax errors, which are to be fixed in the next commit. I had already mentioned SSE2NEON being responsible for translating __m128, but I had forgotten that it was a different package from GLM, obviously, that __m128 was never GLM_FORCE_NEON's responsibility. --- indra/cmake/00-Common.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'indra/cmake/00-Common.cmake') diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index c8520b53ab..5cb0c23d6d 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -33,8 +33,10 @@ add_compile_definitions( ADDRESS_SIZE=${ADDRESS_SIZE}) # -- which we do. Without one or the other, we get a ton of Boost warnings. add_compile_definitions(BOOST_BIND_GLOBAL_PLACEHOLDERS) -if(CMAKE_OSX_ARCHITECTURES MATCHES arm64 OR CMAKE_SYSTEM_PROCESSOR MATCHES aarch64 OR ($ENV{MSYSTEM_CARCH} MATCHES aarch64)) +if(CMAKE_OSX_ARCHITECTURES MATCHES arm64 OR CMAKE_SYSTEM_PROCESSOR MATCHES aarch64) add_compile_definitions(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES=1 GLM_FORCE_NEON=1 GLM_ENABLE_EXPERIMENTAL=1) +elseif($ENV{MSYSTEM_CARCH} MATCHES aarch64) +add_compile_definitions(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES=1 GLM_ENABLE_EXPERIMENTAL=1) else() # Force enable SSE2 instructions in GLM per the manual # https://github.com/g-truc/glm/blob/master/manual.md#section2_10 -- cgit v1.2.3