소스 검색

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)