瀏覽代碼

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
共有 3 個文件被更改,包括 32 次插入8 次删除
  1. 8 0
      Source/kwsys/SystemTools.cxx
  2. 12 4
      Tests/SimpleInstall/CMakeLists.txt
  3. 12 4
      Tests/SimpleInstallS2/CMakeLists.txt

+ 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)