[Bf-blender-cvs] [e6c6b5d] buildbot_linux_cmake: Buildbot: Link statically against gomp for CMake Linux slave
Sergey Sharybin
noreply at git.blender.org
Tue Dec 1 13:11:26 CET 2015
Commit: e6c6b5dada6793e0bfd7359d378622ddc639a6c6
Author: Sergey Sharybin
Date: Tue Dec 1 13:08:11 2015 +0100
Branches: buildbot_linux_cmake
https://developer.blender.org/rBe6c6b5dada6793e0bfd7359d378622ddc639a6c6
Buildbot: Link statically against gomp for CMake Linux slave
This commit added a new option to link statically against OpenMP which
is only available on Linux and shall be used with real care.
It's a bit too much tricky to guarantee proper cflags and library
linking order without this extra option.
===================================================================
M CMakeLists.txt
M build_files/buildbot/config/blender_linux.cmake
M build_files/cmake/macros.cmake
===================================================================
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 10c2f65..ed8fbcd 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)
@@ -2458,8 +2462,16 @@ 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()
+ add_definitions("${OpenMP_C_FLAGS}")
+
+ execute_process(COMMAND ${CMAKE_CXX_COMPILER} -print-file-name=libgomp.a
+ OUTPUT_VARIABLE OpenMP_LIBRARIES
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ endif()
else()
set(WITH_OPENMP OFF)
endif()
diff --git a/build_files/buildbot/config/blender_linux.cmake b/build_files/buildbot/config/blender_linux.cmake
index fa44e04..1a344cb 100644
--- a/build_files/buildbot/config/blender_linux.cmake
+++ b/build_files/buildbot/config/blender_linux.cmake
@@ -62,6 +62,8 @@ set(WITH_JACK_DYNLOAD ON CACHE BOOL "" FORCE)
set(WITH_SDL_DYNLOAD ON CACHE BOOL "" FORCE)
set(WITH_SYSTEM_GLEW OFF CACHE BOOL "" FORCE)
+set(WITH_OPENMP_STATIC ON CACHE BOOL "" FORCE)
+
set(WITH_PYTHON_INSTALL_NUMPY ON CACHE BOOL "" FORCE)
set(WITH_PYTHON_INSTALL_REQUESTS ON CACHE BOOL "" FORCE)
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 90c4fbd..de6dea7 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -452,6 +452,11 @@ function(setup_liblinks
if(WIN32 AND NOT UNIX)
target_link_libraries(${target} ${PTHREADS_LIBRARIES})
endif()
+ if(UNIX AND NOT APPLE)
+ if(WITH_OPENMP_STATIC)
+ target_link_libraries(${target} ${OpenMP_LIBRARIES})
+ endif()
+ endif()
# We put CLEW and CUEW here because OPENSUBDIV_LIBRARIES dpeends on them..
if(WITH_CYCLES OR WITH_COMPOSITOR OR WITH_OPENSUBDIV)
More information about the Bf-blender-cvs
mailing list