diff --git a/CMakeLists.txt b/CMakeLists.txt index 3a8ba80..f3d62f7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,10 +5,17 @@ add_definitions(-std=c++14) set(CMAKE_CXX_FLAGS "-std=c++14") if (BUILD_WITH_MARCH_NATIVE) + message(STATUS "Compiling with -march=native") add_compile_options(-march=native) else() - add_definitions(-msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2) - set(CMAKE_CXX_FLAGS "-msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2") + message(STATUS "Compiling with architecture-specific SIMD flags for portability") + + if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64|amd64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686") + message(STATUS "x86 architecture detected, adding SSE flags") + add_compile_options(-msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2) + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|ARM64|arm64") + message(STATUS "ARM64 architecture detected, skipping SSE4.2 flags") + endif() endif() # pcl 1.7 causes a segfault when it is built with debug mode