diff options
author | David Cole <david.cole@kitware.com> | 2008-10-08 18:19:01 (GMT) |
---|---|---|
committer | David Cole <david.cole@kitware.com> | 2008-10-08 18:19:01 (GMT) |
commit | fdb0c8758a54a929dca054f4630812b5d6d617b3 (patch) | |
tree | b8b34d20a32a1791e756d19437cf9979e14aa316 | |
parent | 25a5c34a62c50d4dc873c04d0896e3ba3e234f56 (diff) | |
download | CMake-fdb0c8758a54a929dca054f4630812b5d6d617b3.zip CMake-fdb0c8758a54a929dca054f4630812b5d6d617b3.tar.gz CMake-fdb0c8758a54a929dca054f4630812b5d6d617b3.tar.bz2 |
BUG: Fix issue #7533. Revise fix for issue #7058 to use pragma comment libs in the source file rather than using TARGET_LINK_LIBRARIES in CMakeLists.txt because of the complex ifdef logic used in correct copies of comdef.h.
-rw-r--r-- | Source/CMakeLists.txt | 13 | ||||
-rw-r--r-- | Source/cmCallVisualStudioMacro.cxx | 25 |
2 files changed, 25 insertions, 13 deletions
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index c194c42..516e208 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -302,19 +302,6 @@ IF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW) TARGET_LINK_LIBRARIES(CMakeLib rpcrt4) ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW) -# With the Microsoft compiler (for _bstr_t support used from -# cmCallVisualStudioMacro) we need the comsupp lib. Needed when -# _MSC_VER and HAVE_COMDEF_H are defined... -# -IF(MSVC) - IF(MSVC60) - # comsuppd did not yet exist in VS6 - TARGET_LINK_LIBRARIES(CMakeLib comsupp) - ELSE(MSVC60) - TARGET_LINK_LIBRARIES(CMakeLib optimized comsupp debug comsuppd) - ENDIF(MSVC60) -ENDIF(MSVC) - # # CTestLib # diff --git a/Source/cmCallVisualStudioMacro.cxx b/Source/cmCallVisualStudioMacro.cxx index 2aefd20..0837108 100644 --- a/Source/cmCallVisualStudioMacro.cxx +++ b/Source/cmCallVisualStudioMacro.cxx @@ -36,6 +36,31 @@ static bool LogErrorsAsMessages; //---------------------------------------------------------------------------- +// Copied from a correct comdef.h to avoid problems with deficient versions +// of comdef.h that exist in the wild... Fixes issue #7533. +// +#if ( _MSC_VER >= 1300 ) +// VS7 and later: +#ifdef _NATIVE_WCHAR_T_DEFINED +# ifdef _DEBUG +# pragma comment(lib, "comsuppwd.lib") +# else +# pragma comment(lib, "comsuppw.lib") +# endif +#else +# ifdef _DEBUG +# pragma comment(lib, "comsuppd.lib") +# else +# pragma comment(lib, "comsupp.lib") +# endif +#endif +#else +// VS6 only had comsupp.lib: +# pragma comment(lib, "comsupp.lib") +#endif + + +//---------------------------------------------------------------------------- ///! Use ReportHRESULT to make a cmSystemTools::Message after calling ///! a COM method that may have failed. #define ReportHRESULT(hr, context) \ |