Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt28
1 files changed, 19 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 10c2f65e84a..039a745070d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -267,6 +267,10 @@ if(NOT WITH_AUDASPACE)
endif()
option(WITH_OPENMP "Enable OpenMP (has to be supported by the compiler)" ON)
+if(UNIX AND NOT APPLE)
+ option(WITH_OPENMP_STATIC "Link OpenMP statically (only used by the release environment)" OFF)
+ mark_as_advanced(WITH_OPENMP_STATIC)
+endif()
if(WITH_X11)
option(WITH_X11_XINPUT "Enable X11 Xinput (tablet support and unicode input)" ON)
@@ -865,13 +869,9 @@ endif()
if(UNIX AND NOT APPLE)
macro(find_package_wrapper)
if(WITH_STATIC_LIBS)
- set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES})
- set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
- endif()
- find_package(${ARGV})
- if(WITH_STATIC_LIBS)
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${_cmake_find_library_suffixes_back})
- unset(_cmake_find_library_suffixes_back)
+ find_package_static(${ARGV})
+ else()
+ find_package(${ARGV})
endif()
endmacro()
@@ -2458,8 +2458,18 @@ endif()
if(WITH_OPENMP)
find_package(OpenMP)
if(OPENMP_FOUND)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+ if(NOT WITH_OPENMP_STATIC)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+ else()
+ # Typically avoid adding flags as defines but we can't
+ # ass OpenMP flags to the linker for static builds, meaning
+ # we can't add any OpenMP related flags to CFLAGS variables
+ # since they're passed to the linker as well.
+ add_definitions("${OpenMP_C_FLAGS}")
+
+ find_library_static(OpenMP_LIBRARIES gomp)
+ endif()
else()
set(WITH_OPENMP OFF)
endif()