소스 검색

GetPrerequisites: Add support for @rpath on Mac OS X.

Change to consider a library embedded if it is found in a subdirectory relative to the
using executable/library.  Previous commit considered them local.
This case is encountered when @rpath is used with framework libraries, which are inside a directory tree.
Clinton Stimpson 14 년 전
부모
커밋
880139a642
1개의 변경된 파일11개의 추가작업 그리고 6개의 파일을 삭제
  1. 11 6
      Modules/GetPrerequisites.cmake

+ 11 - 6
Modules/GetPrerequisites.cmake

@@ -478,12 +478,17 @@ function(gp_resolved_file_type original_file file exepath dirs type_var)
 
 
     if(NOT is_system)
     if(NOT is_system)
       get_filename_component(original_path "${original_lower}" PATH)
       get_filename_component(original_path "${original_lower}" PATH)
-      string(LENGTH "${original_path}/" original_length)
-      string(LENGTH "${lower}" path_length)
-      if(${path_length} GREATER ${original_length})
-        string(SUBSTRING "${lower}" 0 ${original_length} path)
-        if("${original_path}/" STREQUAL "${path}")
-          set(is_local 1)
+      get_filename_component(path "${lower}" PATH)
+      if("${original_path}" STREQUAL "${path}")
+        set(is_local 1)
+      else()
+        string(LENGTH "${original_path}/" original_length)
+        string(LENGTH "${lower}" path_length)
+        if(${path_length} GREATER ${original_length})
+          string(SUBSTRING "${lower}" 0 ${original_length} path)
+          if("${original_path}/" STREQUAL "${path}")
+            set(is_embedded 1)
+          endif()
         endif()
         endif()
       endif()
       endif()
     endif()
     endif()