From 6097ac5c60b16b9d9349d18abe12e70d07bef6aa Mon Sep 17 00:00:00 2001
From: Mathieu Malaterre <mathieu.malaterre@gmail.com>
Date: Fri, 8 Dec 2006 15:52:30 -0500
Subject: [PATCH] BUG: Make sure to use the Win32 interface (HINSTANCE) for
 handling shared lib on cygwin and mingw system

---
 CMakeLists.txt       | 4 +++-
 DynamicLoader.cxx    | 2 +-
 DynamicLoader.hxx.in | 4 ++--
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 93d9cbd..a0fc63d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -718,7 +718,9 @@ IF(KWSYS_C_SRCS OR KWSYS_CXX_SRCS)
     ${KWSYS_C_SRCS} ${KWSYS_CXX_SRCS})
   IF(KWSYS_USE_DynamicLoader)
     IF(UNIX)
-      TARGET_LINK_LIBRARIES(${KWSYS_NAMESPACE} ${CMAKE_DL_LIBS})
+      IF(NOT CYGWIN AND NOT MINGW)
+        TARGET_LINK_LIBRARIES(${KWSYS_NAMESPACE} ${CMAKE_DL_LIBS})
+      ENDIF(NOT CYGWIN AND NOT MINGW)
     ENDIF(UNIX)
   ENDIF(KWSYS_USE_DynamicLoader)
 
diff --git a/DynamicLoader.cxx b/DynamicLoader.cxx
index 5ef0ef8..e2e0c27 100644
--- a/DynamicLoader.cxx
+++ b/DynamicLoader.cxx
@@ -220,7 +220,7 @@ const char* DynamicLoader::LastError()
 
 // ---------------------------------------------------------------
 // 3. Implementation for Windows win32 code
-#ifdef _WIN32
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)
 #include <windows.h>
 #define DYNAMICLOADER_DEFINED 1
 
diff --git a/DynamicLoader.hxx.in b/DynamicLoader.hxx.in
index 752297f..54a742e 100644
--- a/DynamicLoader.hxx.in
+++ b/DynamicLoader.hxx.in
@@ -18,7 +18,7 @@
 
 #if defined(__hpux)
   #include <dl.h>
-#elif defined(_WIN32)
+#elif defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)
   #include <windows.h>
 #elif defined(__APPLE__)
   #include <AvailabilityMacros.h>
@@ -56,7 +56,7 @@ public:
 // They are different on several different OS's
 #if defined(__hpux)
   typedef shl_t LibraryHandle;
-#elif defined(_WIN32)
+#elif defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)
   typedef HMODULE LibraryHandle;
 #elif defined(__APPLE__)
   #if MAC_OS_X_VERSION_MAX_ALLOWED < 1030
-- 
GitLab