diff --git a/CMakeLists.txt b/CMakeLists.txt index 6494993f..5a258f4b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,6 +46,8 @@ set(ENABLE_COVERAGE OFF CACHE BOOL "Whether code coverage information will be collected") set(ENABLE_SANITIZERS OFF CACHE BOOL "Whether to enable Clang's AddressSanitizer and UndefinedBehaviorSanitizer") +set(ENABLE_OPENMP OFF CACHE BOOL + "Whether geometric operations will be parallelized using OpenMP") set(OPENGL 3 CACHE STRING "OpenGL version to use (one of: 1 3)") @@ -96,13 +98,11 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "i686" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "X8 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLOAT_FLAGS}") endif() -# We use OpenMP to speed up some geometric operations, but it's optional. -include(FindOpenMP) -# No MinGW distribution actually ships an OpenMP runtime, but FindOpenMP detects it anyway. -if(OpenMP_FOUND AND NOT MINGW) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") -else() - message(WARNING "OpenMP not found, geometric operations will be single-threaded") +if(ENABLE_OPENMP) + include(FindOpenMP) + if(OpenMP_FOUND) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + endif() endif() if(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")