From d7e36f9f5b875a79f24ec4664a9c1504a11bc226 Mon Sep 17 00:00:00 2001 From: makise-homura Date: Tue, 18 Aug 2020 15:50:50 +0300 Subject: [PATCH] cmake: Conditionalize -fopenmp-simd --- CMakeLists.txt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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")