diff options
-rw-r--r-- | CMakeLists.txt | 19 | ||||
-rw-r--r-- | build_files/cmake/macros.cmake | 18 |
2 files changed, 26 insertions, 11 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 1c933d38ab9..59ddd978c41 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1353,17 +1353,6 @@ elseif(WIN32) set(PLATFORM_LINKFLAGS_DEBUG "/IGNORE:4099 /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libc.lib") - # Use dynamic loading for OpenMP - if(WITH_OPENMP) - if(MSVC_VERSION EQUAL 1800) - set(OPENMP_DLL_NAME "vcomp120") - else() - set(OPENMP_DLL_NAME "vcomp140") - endif() - set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib") - set(PLATFORM_LINKFLAGS_DEBUG "${PLATFORM_LINKFLAGS_DEBUG} /DELAYLOAD:${OPENMP_DLL_NAME}d.dll delayimp.lib") - endif() - if(NOT DEFINED LIBDIR) # Setup 64bit and 64bit windows systems @@ -3162,6 +3151,14 @@ add_subdirectory(tests) # CPack for generating packages include(build_files/cmake/packaging.cmake) +#----------------------------------------------------------------------------- +# Use dynamic loading for OpenMP +if(WITH_BLENDER) + openmp_delayload(blender) +endif(WITH_BLENDER) +if(WITH_PLAYER) + openmp_delayload(blenderplayer) +endif(WITH_PLAYER) #----------------------------------------------------------------------------- # Print Final Configuration diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 5ffd6c4e7f4..f57a6952164 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -1547,3 +1547,21 @@ function(print_all_vars) message("${_var}=${${_var}}") endforeach() endfunction() + +macro(openmp_delayload + projectname + ) + if(MSVC) + if(WITH_OPENMP) + if(MSVC_VERSION EQUAL 1800) + set(OPENMP_DLL_NAME "vcomp120") + else() + set(OPENMP_DLL_NAME "vcomp140") + endif() + SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_RELEASE "/DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib") + SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_DEBUG "/DELAYLOAD:${OPENMP_DLL_NAME}d.dll delayimp.lib") + SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib") + SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_MINSIZEREL "/DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib") + endif(WITH_OPENMP) + endif(MSVC) +endmacro() |