summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/CMakeLists.txt13
-rw-r--r--Source/cmCallVisualStudioMacro.cxx25
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) \