浏览代码

ENH: Activate GetPrerequisites code on Linux. Thanks to Mike Arthur for finishing it off.

David Cole 17 年之前
父节点
当前提交
86ded1ba58
共有 2 个文件被更改,包括 16 次插入12 次删除
  1. 12 4
      Modules/GetPrerequisites.cmake
  2. 4 8
      Tests/CMakeTests/CMakeLists.txt

+ 12 - 4
Modules/GetPrerequisites.cmake

@@ -69,9 +69,17 @@ function(gp_file_type original_file file type_var)
   endif("${file}" MATCHES "^@(executable|loader)_path")
   endif("${file}" MATCHES "^@(executable|loader)_path")
 
 
   if(NOT is_embedded)
   if(NOT is_embedded)
-    if("${file}" MATCHES "^(/System/Library/|/usr/lib/)")
-      set(is_system 1)
-    endif("${file}" MATCHES "^(/System/Library/|/usr/lib/)")
+    if(UNIX)
+      if("${file}" MATCHES "^(/lib/|/lib32/|/lib64/)")
+        set(is_system 1)
+      endif("${file}" MATCHES "^(/lib/|/lib32/|/lib64/)")
+    endif(UNIX)
+
+    if(APPLE)
+      if("${file}" MATCHES "^(/System/Library/|/usr/lib/)")
+        set(is_system 1)
+      endif("${file}" MATCHES "^(/System/Library/|/usr/lib/)")
+    endif(APPLE)
 
 
     if(WIN32)
     if(WIN32)
       string(TOLOWER "$ENV{SystemRoot}" sysroot)
       string(TOLOWER "$ENV{SystemRoot}" sysroot)
@@ -406,7 +414,7 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa
 
 
   if("${gp_tool}" STREQUAL "ldd")
   if("${gp_tool}" STREQUAL "ldd")
     set(gp_cmd_args "")
     set(gp_cmd_args "")
-    set(gp_regex "^\t([\t ]+)[\t ].*${eol_char}$")
+    set(gp_regex "^[\t ]*[^\t ]+ => ([^\t ]+).*${eol_char}$")
     set(gp_regex_cmp_count 1)
     set(gp_regex_cmp_count 1)
     set(gp_tool_known 1)
     set(gp_tool_known 1)
   endif("${gp_tool}" STREQUAL "ldd")
   endif("${gp_tool}" STREQUAL "ldd")

+ 4 - 8
Tests/CMakeTests/CMakeLists.txt

@@ -15,11 +15,7 @@ AddCMakeTest(Include "")
 AddCMakeTest(FindBase "")
 AddCMakeTest(FindBase "")
 AddCMakeTest(Toolchain "")
 AddCMakeTest(Toolchain "")
 
 
-# Not ready for Unix testing yet. Coming "soon"...
-#
-IF(WIN32 OR APPLE)
-  SET(GetPrerequisites_PreArgs
-    "-DCTEST_CONFIGURATION_TYPE:STRING=\\\${CTEST_CONFIGURATION_TYPE}"
-    )
-  AddCMakeTest(GetPrerequisites "${GetPrerequisites_PreArgs}")
-ENDIF(WIN32 OR APPLE)
+SET(GetPrerequisites_PreArgs
+  "-DCTEST_CONFIGURATION_TYPE:STRING=\\\${CTEST_CONFIGURATION_TYPE}"
+  )
+AddCMakeTest(GetPrerequisites "${GetPrerequisites_PreArgs}")