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:
authorMartijn Berger <martijn.berger@gmail.com>2016-03-31 14:45:33 +0300
committerMartijn Berger <martijn.berger@gmail.com>2016-03-31 14:46:14 +0300
commit4ec95d621ada1ffe9df742e0afee00679ce137ad (patch)
tree0fbf9165dc1dd42d23700612f55bde336059b02c
parente2059380de131dacabcfa876368d7aab913857cb (diff)
CMAKE / msvc openmp, delay loading of openmp dll so we can set environment
variable before it is loaded
-rw-r--r--CMakeLists.txt11
-rw-r--r--source/creator/creator.c5
2 files changed, 16 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4a03e8fa86e..99c07996598 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1308,6 +1308,17 @@ 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
diff --git a/source/creator/creator.c b/source/creator/creator.c
index 2c2af7c199a..1010c9f06c8 100644
--- a/source/creator/creator.c
+++ b/source/creator/creator.c
@@ -205,6 +205,11 @@ int main(
#ifdef WIN32
+ /* We delay loading of openmp so we can set the policy here. */
+# if defined(_MSC_VER)
+ _putenv_s("OMP_WAIT_POLICY", "PASSIVE");
+# endif
+
/* FMA3 support in the 2013 CRT is broken on Vista and Windows 7 RTM (fixed in SP1). Just disable it. */
# if defined(_MSC_VER) && defined(_M_X64)
_set_FMA3_enable(0);