1
0
Эх сурвалжийг харах

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 жил өмнө
parent
commit
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)