From 0150f40ddea0aa65336e55e4ac549d400c8e180f Mon Sep 17 00:00:00 2001 From: Francis Charette Migneault Date: Thu, 13 Feb 2020 22:13:38 -0800 Subject: [PATCH] dont force msvc /Ox flag which can conflict with /RTC1 in debug config (#33164) Summary: Relates to https://github.com/pytorch/pytorch/issues/33132 This fix doesn't add full multi-configuration support described in https://github.com/pytorch/pytorch/issues/33132 but at least avoid the error presented in the issue when `CMAKE_BUILD_TYPE=Debug` is used with MSVC. Pull Request resolved: https://github.com/pytorch/pytorch/pull/33164 Differential Revision: D19899727 Pulled By: ezyang fbshipit-source-id: 28a364d920c4a3fb577c6b484ccd69a133fbcf5d --- cmake/Codegen.cmake | 16 +++++++--------- cmake/public/utils.cmake | 10 ++++++++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/cmake/Codegen.cmake b/cmake/Codegen.cmake index f8fdcc8be71..f292a97fec2 100644 --- a/cmake/Codegen.cmake +++ b/cmake/Codegen.cmake @@ -53,16 +53,14 @@ install(FILES ${CMAKE_BINARY_DIR}/caffe2/core/macros.h # ---[ ATen specific if (INTERN_BUILD_ATEN_OPS) - SET(OPT_FLAG "-O3 ") IF(MSVC) - SET(OPT_FLAG "/Ox /fp:strict ") - ENDIF() - SET(VCOMP_LIB "vcomp") - - IF("${CMAKE_BUILD_TYPE}" MATCHES "Debug") - SET(OPT_FLAG " ") - SET(VCOMP_LIB "vcompd") - ENDIF() + SET(OPT_FLAG "/fp:strict ") + ELSE(MSVC) + SET(OPT_FLAG "-O3 ") + IF("${CMAKE_BUILD_TYPE}" MATCHES "Debug") + SET(OPT_FLAG " ") + ENDIF() + ENDIF(MSVC) IF(C_AVX_FOUND) IF(MSVC) diff --git a/cmake/public/utils.cmake b/cmake/public/utils.cmake index eca8bd372cc..63484b323cb 100644 --- a/cmake/public/utils.cmake +++ b/cmake/public/utils.cmake @@ -305,8 +305,14 @@ endfunction() # torch_set_target_props(lib_name) function(torch_set_target_props libname) if(MSVC AND AT_MKL_MT) + set(VCOMP_LIB "vcomp") + set_target_properties(${libname} PROPERTIES LINK_FLAGS_MINSIZEREL "/NODEFAULTLIB:${VCOMP_LIB}") + set_target_properties(${libname} PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/NODEFAULTLIB:${VCOMP_LIB}") set_target_properties(${libname} PROPERTIES LINK_FLAGS_RELEASE "/NODEFAULTLIB:${VCOMP_LIB}") - set_target_properties(${libname} PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB:${VCOMP_LIB}") - set_target_properties(${libname} PROPERTIES STATIC_LIBRARY_FLAGS "/NODEFAULTLIB:${VCOMP_LIB}") + set_target_properties(${libname} PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB:${VCOMP_LIB}d") + set_target_properties(${libname} PROPERTIES STATIC_LIBRARY_FLAGS_MINSIZEREL "/NODEFAULTLIB:${VCOMP_LIB}") + set_target_properties(${libname} PROPERTIES STATIC_LIBRARY_FLAGS_RELWITHDEBINFO "/NODEFAULTLIB:${VCOMP_LIB}") + set_target_properties(${libname} PROPERTIES STATIC_LIBRARY_FLAGS_RELEASE "/NODEFAULTLIB:${VCOMP_LIB}") + set_target_properties(${libname} PROPERTIES STATIC_LIBRARY_FLAGS_DEBUG "/NODEFAULTLIB:${VCOMP_LIB}d") endif() endfunction()