From a80a0337a5bbc3cc271355fb24e319e73a4af2b8 Mon Sep 17 00:00:00 2001 From: whitequark Date: Sun, 21 Jun 2020 00:55:17 +0000 Subject: [PATCH] Disable OpenMP. This is unfortunate, but OpenMP is not available on some toolchains (most MinGW builds) and, more importantly, breaks the distribution model we use on Windows, which is a single self-contained executable. Leave the OpenMP disabled by default everywhere so that we don't have any second-class platforms where SolveSpace is slower than on first- class ones. Fixes #631. --- CMakeLists.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) 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")