diff --git a/CMakeLists.txt b/CMakeLists.txt index 56bb1a3da..63d68fae6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,6 +62,8 @@ set(SCRIPTING_ENABLED OFF CACHE BOOL "Internal global cmake variable" FORCE) include(ObsHelpers) include(ObsCpack) include(GNUInstallDirs) +include(CheckCCompilerFlag) +include(CheckCXXCompilerFlag) # Must be a string in the format of "x.x.x-rcx" if(DEFINED RELEASE_CANDIDATE) @@ -133,8 +135,16 @@ else() set(NEEDS_SIMDE "1") add_definitions(-DNEEDS_SIMDE=1) if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp-simd -DSIMDE_ENABLE_OPENMP") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp-simd -DSIMDE_ENABLE_OPENMP") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSIMDE_ENABLE_OPENMP") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSIMDE_ENABLE_OPENMP") + CHECK_C_COMPILER_FLAG("-fopenmp-simd" C_COMPILER_SUPPORTS_OPENMP_SIMD) + if(C_COMPILER_SUPPORTS_OPENMP_SIMD) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp-simd") + endif() + CHECK_CXX_COMPILER_FLAG("-fopenmp-simd" CXX_COMPILER_SUPPORTS_OPENMP_SIMD) + if(CXX_COMPILER_SUPPORTS_OPENMP_SIMD) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp-simd") + endif() endif() set(ARCH_SIMD_FLAGS "") message(STATUS "No Native SSE2 SIMD Support - Using SIMDE")