ソースを参照

ENH: On Cygwin shared libraries have only .dll file no .lib file, so when finding library on cygwin, search also for .dll. Also fix SimpleInstall test on cygwin

Andy Cedilnik 22 年 前
コミット
ff6bc56616

+ 8 - 0
Source/kwsys/SystemTools.cxx

@@ -1241,6 +1241,14 @@ kwsys_stl::string SystemTools::FindLibrary(const char* name,
       {
       return SystemTools::CollapseFullPath(tryPath.c_str());
       }
+    tryPath = *p;
+    tryPath += "/lib";
+    tryPath += name;
+    tryPath += ".dll";
+    if(SystemTools::FileExists(tryPath.c_str()))
+      {
+      return SystemTools::CollapseFullPath(tryPath.c_str());
+      }
 #endif
     }
   

+ 12 - 4
Tests/SimpleInstall/CMakeLists.txt

@@ -27,13 +27,21 @@ ENDIF(CMAKE_GENERATOR MATCHES "^Visual Studio")
 MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}")
 
 IF(STAGE2)
+  SET(LIBPATHS "${CMAKE_INSTALL_PREFIX}/lib")
+  SET(t1NAMES test1 test1${CMAKE_DEBUG_POSTFIX})
+  SET(t2NAMES test2 test2${CMAKE_DEBUG_POSTFIX})
+
+  IF(WIN32 AND UNIX)
+    SET(LIBPATHS ${LIBPATHS} "${CMAKE_INSTALL_PREFIX}/bin")
+  ENDIF(WIN32 AND UNIX)
+  MESSAGE("Search for library in: ${LIBPATHS}")
   FIND_LIBRARY(TEST1_LIBRARY 
-    NAMES test1 test1${CMAKE_DEBUG_POSTFIX}
-    PATHS "${CMAKE_INSTALL_PREFIX}/lib"
+    NAMES ${t1NAMES}
+    PATHS ${LIBPATHS}
     DOC "First library")
   FIND_LIBRARY(TEST2_LIBRARY 
-    NAMES test2 test2${CMAKE_DEBUG_POSTFIX}
-    PATHS "${CMAKE_INSTALL_PREFIX}/lib"
+    NAMES ${t2NAMES}
+    PATHS ${LIBPATHS}
     DOC "First library")
 
   ADD_EXECUTABLE (SimpleInstallS2 inst.cxx foo.c foo.h)

+ 12 - 4
Tests/SimpleInstallS2/CMakeLists.txt

@@ -27,13 +27,21 @@ ENDIF(CMAKE_GENERATOR MATCHES "^Visual Studio")
 MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}")
 
 IF(STAGE2)
+  SET(LIBPATHS "${CMAKE_INSTALL_PREFIX}/lib")
+  SET(t1NAMES test1 test1${CMAKE_DEBUG_POSTFIX})
+  SET(t2NAMES test2 test2${CMAKE_DEBUG_POSTFIX})
+
+  IF(WIN32 AND UNIX)
+    SET(LIBPATHS ${LIBPATHS} "${CMAKE_INSTALL_PREFIX}/bin")
+  ENDIF(WIN32 AND UNIX)
+  MESSAGE("Search for library in: ${LIBPATHS}")
   FIND_LIBRARY(TEST1_LIBRARY 
-    NAMES test1 test1${CMAKE_DEBUG_POSTFIX}
-    PATHS "${CMAKE_INSTALL_PREFIX}/lib"
+    NAMES ${t1NAMES}
+    PATHS ${LIBPATHS}
     DOC "First library")
   FIND_LIBRARY(TEST2_LIBRARY 
-    NAMES test2 test2${CMAKE_DEBUG_POSTFIX}
-    PATHS "${CMAKE_INSTALL_PREFIX}/lib"
+    NAMES ${t2NAMES}
+    PATHS ${LIBPATHS}
     DOC "First library")
 
   ADD_EXECUTABLE (SimpleInstallS2 inst.cxx foo.c foo.h)