CMAKE / msvc openmp, delay loading of openmp dll so we can set environment
variable before it is loaded
This commit is contained in:
@@ -1308,6 +1308,17 @@ elseif(WIN32)
|
|||||||
|
|
||||||
set(PLATFORM_LINKFLAGS_DEBUG "/IGNORE:4099 /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libc.lib")
|
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)
|
if(NOT DEFINED LIBDIR)
|
||||||
|
|
||||||
# Setup 64bit and 64bit windows systems
|
# Setup 64bit and 64bit windows systems
|
||||||
|
@@ -205,6 +205,11 @@ int main(
|
|||||||
|
|
||||||
|
|
||||||
#ifdef WIN32
|
#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. */
|
/* 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)
|
# if defined(_MSC_VER) && defined(_M_X64)
|
||||||
_set_FMA3_enable(0);
|
_set_FMA3_enable(0);
|
||||||
|
Reference in New Issue
Block a user