[Cmake-commits] CMake branch, next, updated. v3.0.1-5166-gbecebe2

Brad King brad.king at kitware.com
Thu Sep 4 14:38:05 EDT 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  becebe20e45ef9e2a3bd3e4441a0109b575e23ab (commit)
       via  a61354546bcd8b565e7d010887e5c142d0b3f592 (commit)
      from  59821b6ef78c50ec0979ccf857dd14271d5a99f7 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=becebe20e45ef9e2a3bd3e4441a0109b575e23ab
commit becebe20e45ef9e2a3bd3e4441a0109b575e23ab
Merge: 59821b6 a613545
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Sep 4 14:38:01 2014 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Thu Sep 4 14:38:01 2014 -0400

    Merge topic 'osx-bundle-updates' into next
    
    a6135454 Revert topic 'osx-bundle-updates'


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a61354546bcd8b565e7d010887e5c142d0b3f592
commit a61354546bcd8b565e7d010887e5c142d0b3f592
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Sep 4 14:39:09 2014 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Sep 4 14:39:09 2014 -0400

    Revert topic 'osx-bundle-updates'
    
    It fails tests on Linux and Windows and will need revising.

diff --git a/Modules/BundleUtilities.cmake b/Modules/BundleUtilities.cmake
index 5759e24..0046c97 100644
--- a/Modules/BundleUtilities.cmake
+++ b/Modules/BundleUtilities.cmake
@@ -19,7 +19,6 @@
 #    get_bundle_and_executable
 #    get_bundle_all_executables
 #    get_item_key
-#    get_item_rpaths
 #    clear_bundle_keys
 #    set_bundle_key_values
 #    get_bundle_keys
@@ -124,7 +123,7 @@
 #
 # ::
 #
-#   SET_BUNDLE_KEY_VALUES(<keys_var> <context> <item> <executable> <dirs>
+#   SET_BUNDLE_KEY_VALUES(<keys_var> <context> <item> <exepath> <dirs>
 #                         <copyflag>)
 #
 # Add a key to the list (if necessary) for the given item.  If added,
@@ -164,7 +163,7 @@
 #
 # ::
 #
-#   FIXUP_BUNDLE_ITEM(<resolved_embedded_item> <executable> <dirs>)
+#   FIXUP_BUNDLE_ITEM(<resolved_embedded_item> <exepath> <dirs>)
 #
 # Get the direct/non-system prerequisites of the resolved embedded item.
 # For each prerequisite, change the way it is referenced to the value of
@@ -286,7 +285,7 @@ function(get_bundle_main_executable bundle result_var)
 endfunction()
 
 
-function(get_dotapp_dir executable dotapp_dir_var)
+function(get_dotapp_dir exe dotapp_dir_var)
   set(s "${exe}")
 
   if(s MATCHES "/.*\\.app/")
@@ -379,24 +378,7 @@ endfunction()
 function(get_bundle_all_executables bundle exes_var)
   set(exes "")
 
-  if(UNIX)
-    find_program(find_cmd "find")
-    mark_as_advanced(find_cmd)
-  endif()
-
-  # find command is much quicker than checking every file one by one on Unix
-  # which can take long time for large bundles, and since anyway we expect
-  # executable to have execute flag set we can narrow the list much quicker.
-  if(find_cmd)
-    execute_process(COMMAND "${find_cmd}" "${bundle}" -type f -perm +0111
-      OUTPUT_VARIABLE file_list
-      OUTPUT_STRIP_TRAILING_WHITESPACE
-      )
-    string(REPLACE "\n" ";" file_list ${file_list})
-  else()
-    file(GLOB_RECURSE file_list "${bundle}/*")
-  endif()
-
+  file(GLOB_RECURSE file_list "${bundle}/*")
   foreach(f ${file_list})
     is_file_executable("${f}" is_executable)
     if(is_executable)
@@ -408,29 +390,6 @@ function(get_bundle_all_executables bundle exes_var)
 endfunction()
 
 
-function(get_item_rpaths item rpaths_var)
-  if(APPLE)
-    find_program(otool_cmd "otool")
-    mark_as_advanced(otool_cmd)
-  endif()
-
-  if(otool_cmd)
-    execute_process(
-      COMMAND "${otool_cmd}" -l "${item}"
-      OUTPUT_VARIABLE load_cmds_ov
-      )
-    string(REGEX REPLACE "[^\n]+cmd LC_RPATH\n[^\n]+\n[^\n]+path ([^\n]+) \\(offset[^\n]+\n" "rpath \\1\n" load_cmds_ov "${load_cmds_ov}")
-    string(REGEX MATCHALL "rpath [^\n]+" load_cmds_ov "${load_cmds_ov}")
-    string(REGEX REPLACE "rpath " "" load_cmds_ov "${load_cmds_ov}")
-    if(load_cmds_ov)
-      gp_append_unique(${rpaths_var} "${load_cmds_ov}")
-    endif()
-  endif()
-
-  set(${rpaths_var} ${${rpaths_var}} PARENT_SCOPE)
-endfunction()
-
-
 function(get_item_key item key_var)
   get_filename_component(item_name "${item}" NAME)
   if(WIN32)
@@ -449,13 +408,12 @@ function(clear_bundle_keys keys_var)
     set(${key}_EMBEDDED_ITEM PARENT_SCOPE)
     set(${key}_RESOLVED_EMBEDDED_ITEM PARENT_SCOPE)
     set(${key}_COPYFLAG PARENT_SCOPE)
-    set(${key}_RPATHS PARENT_SCOPE)
   endforeach()
   set(${keys_var} PARENT_SCOPE)
 endfunction()
 
 
-function(set_bundle_key_values keys_var context item executable dirs copyflag)
+function(set_bundle_key_values keys_var context item exepath dirs copyflag)
   get_filename_component(item_name "${item}" NAME)
 
   get_item_key("${item}" key)
@@ -465,17 +423,10 @@ function(set_bundle_key_values keys_var context item executable dirs copyflag)
   list(LENGTH ${keys_var} length_after)
 
   if(NOT length_before EQUAL length_after)
-    # Always use the exepath of the main bundle executable for @executable_path
-    # replacements:
-    #
-    get_filename_component(exepath "${executable}" PATH)
-
-    gp_resolve_item("${context}" "${item}" "${executable}" "${dirs}" resolved_item)
+    gp_resolve_item("${context}" "${item}" "${exepath}" "${dirs}" resolved_item)
 
     gp_item_default_embedded_path("${item}" default_embedded_path)
 
-    get_item_rpaths("${resolved_item}" rpaths)
-
     if(item MATCHES "[^/]+\\.framework/")
       # For frameworks, construct the name under the embedded path from the
       # opening "${item_name}.framework/" to the closing "/${item_name}":
@@ -511,7 +462,6 @@ function(set_bundle_key_values keys_var context item executable dirs copyflag)
     set(${key}_EMBEDDED_ITEM "${embedded_item}" PARENT_SCOPE)
     set(${key}_RESOLVED_EMBEDDED_ITEM "${resolved_embedded_item}" PARENT_SCOPE)
     set(${key}_COPYFLAG "${copyflag}" PARENT_SCOPE)
-    set(${key}_RPATHS "${rpaths}" PARENT_SCOPE)
   else()
     #message("warning: item key '${key}' already in the list, subsequent references assumed identical to first")
   endif()
@@ -523,10 +473,30 @@ function(get_bundle_keys app libs dirs keys_var)
 
   get_bundle_and_executable("${app}" bundle executable valid)
   if(valid)
+    # Always use the exepath of the main bundle executable for @executable_path
+    # replacements:
+    #
+    get_filename_component(exepath "${executable}" PATH)
+
     # But do fixups on all executables in the bundle:
     #
     get_bundle_all_executables("${bundle}" exes)
 
+    # For each extra lib, accumulate a key as well and then also accumulate
+    # any of its prerequisites. (Extra libs are typically dynamically loaded
+    # plugins: libraries that are prerequisites for full runtime functionality
+    # but that do not show up in otool -L output...)
+    #
+    foreach(lib ${libs})
+      set_bundle_key_values(${keys_var} "${lib}" "${lib}" "${exepath}" "${dirs}" 0)
+
+      set(prereqs "")
+      get_prerequisites("${lib}" prereqs 1 1 "${exepath}" "${dirs}")
+      foreach(pr ${prereqs})
+        set_bundle_key_values(${keys_var} "${lib}" "${pr}" "${exepath}" "${dirs}" 1)
+      endforeach()
+    endforeach()
+
     # For each executable found in the bundle, accumulate keys as we go.
     # The list of keys should be complete when all prerequisites of all
     # binaries in the bundle have been analyzed.
@@ -534,29 +504,14 @@ function(get_bundle_keys app libs dirs keys_var)
     foreach(exe ${exes})
       # Add the exe itself to the keys:
       #
-      set_bundle_key_values(${keys_var} "${exe}" "${exe}" "${executable}" "${dirs}" 0)
+      set_bundle_key_values(${keys_var} "${exe}" "${exe}" "${exepath}" "${dirs}" 0)
 
       # Add each prerequisite to the keys:
       #
       set(prereqs "")
-      get_prerequisites("${exe}" prereqs 1 1 "${executable}" "${dirs}")
+      get_prerequisites("${exe}" prereqs 1 1 "${exepath}" "${dirs}")
       foreach(pr ${prereqs})
-        set_bundle_key_values(${keys_var} "${exe}" "${pr}" "${executable}" "${dirs}" 1)
-      endforeach()
-    endforeach()
-
-    # For each extra lib, accumulate a key as well and then also accumulate
-    # any of its prerequisites. (Extra libs are typically dynamically loaded
-    # plugins: libraries that are prerequisites for full runtime functionality
-    # but that do not show up in otool -L output...)
-    #
-    foreach(lib ${libs})
-      set_bundle_key_values(${keys_var} "${lib}" "${lib}" "${executable}" "${dirs}" 0)
-
-      set(prereqs "")
-      get_prerequisites("${lib}" prereqs 1 1 "${executable}" "${dirs}")
-      foreach(pr ${prereqs})
-        set_bundle_key_values(${keys_var} "${lib}" "${pr}" "${executable}" "${dirs}" 1)
+        set_bundle_key_values(${keys_var} "${exe}" "${pr}" "${exepath}" "${dirs}" 1)
       endforeach()
     endforeach()
 
@@ -570,7 +525,6 @@ function(get_bundle_keys app libs dirs keys_var)
       set(${key}_EMBEDDED_ITEM "${${key}_EMBEDDED_ITEM}" PARENT_SCOPE)
       set(${key}_RESOLVED_EMBEDDED_ITEM "${${key}_RESOLVED_EMBEDDED_ITEM}" PARENT_SCOPE)
       set(${key}_COPYFLAG "${${key}_COPYFLAG}" PARENT_SCOPE)
-      set(${key}_RPATHS "${${key}_RPATHS}" PARENT_SCOPE)
     endforeach()
   endif()
 endfunction()
@@ -632,14 +586,6 @@ function(copy_resolved_framework_into_bundle resolved_item resolved_embedded_ite
         #message(STATUS "copying COMMAND ${CMAKE_COMMAND} -E copy_directory '${resolved_resources}' '${resolved_embedded_resources}'")
         execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory "${resolved_resources}" "${resolved_embedded_resources}")
       endif()
-
-      # And Info.plist, if it exists:
-      string(REGEX REPLACE "^(.*)/[^/]+/[^/]+/[^/]+$" "\\1/Contents/Info.plist" resolved_info_plist "${resolved_item}")
-      string(REGEX REPLACE "^(.*)/[^/]+/[^/]+/[^/]+$" "\\1/Contents/Info.plist" resolved_embedded_info_plist "${resolved_embedded_item}")
-      if(EXISTS "${resolved_info_plist}")
-        #message(STATUS "copying COMMAND ${CMAKE_COMMAND} -E copy_directory '${resolved_info_plist}' '${resolved_embedded_info_plist}'")
-        execute_process(COMMAND ${CMAKE_COMMAND} -E copy "${resolved_info_plist}" "${resolved_embedded_info_plist}")
-      endif()
     endif()
     if(UNIX AND NOT APPLE)
       file(RPATH_REMOVE FILE "${resolved_embedded_item}")
@@ -649,7 +595,7 @@ function(copy_resolved_framework_into_bundle resolved_item resolved_embedded_ite
 endfunction()
 
 
-function(fixup_bundle_item resolved_embedded_item executable dirs)
+function(fixup_bundle_item resolved_embedded_item exepath dirs)
   # This item's key is "ikey":
   #
   get_item_key("${resolved_embedded_item}" ikey)
@@ -659,7 +605,7 @@ function(fixup_bundle_item resolved_embedded_item executable dirs)
   # tree, or in other varied locations around the file system, with our call to
   # install_name_tool. Make sure that doesn't happen here:
   #
-  get_dotapp_dir("${executable}" exe_dotapp_dir)
+  get_dotapp_dir("${exepath}" exe_dotapp_dir)
   string(LENGTH "${exe_dotapp_dir}/" exe_dotapp_dir_length)
   string(LENGTH "${resolved_embedded_item}" resolved_embedded_item_length)
   set(path_too_short 0)
@@ -685,7 +631,7 @@ function(fixup_bundle_item resolved_embedded_item executable dirs)
   endif()
 
   set(prereqs "")
-  get_prerequisites("${resolved_embedded_item}" prereqs 1 0 "${executable}" "${dirs}")
+  get_prerequisites("${resolved_embedded_item}" prereqs 1 0 "${exepath}" "${dirs}")
 
   set(changes "")
 
@@ -705,20 +651,12 @@ function(fixup_bundle_item resolved_embedded_item executable dirs)
     execute_process(COMMAND chmod u+w "${resolved_embedded_item}")
   endif()
 
-  foreach(rpath ${${ikey}_RPATHS})
-    set(changes ${changes} -delete_rpath "${rpath}")
-  endforeach()
-
-  if(${ikey}_EMBEDDED_ITEM)
-    set(changes ${changes} -id "${${ikey}_EMBEDDED_ITEM}")
-  endif()
-
   # Change this item's id and all of its references in one call
   # to install_name_tool:
   #
-  if(changes)
-    execute_process(COMMAND install_name_tool ${changes} "${resolved_embedded_item}")
-  endif()
+  execute_process(COMMAND install_name_tool
+    ${changes} -id "${${ikey}_EMBEDDED_ITEM}" "${resolved_embedded_item}"
+  )
 endfunction()
 
 
@@ -730,6 +668,8 @@ function(fixup_bundle app libs dirs)
 
   get_bundle_and_executable("${app}" bundle executable valid)
   if(valid)
+    get_filename_component(exepath "${executable}" PATH)
+
     message(STATUS "fixup_bundle: preparing...")
     get_bundle_keys("${app}" "${libs}" "${dirs}" keys)
 
@@ -775,7 +715,7 @@ function(fixup_bundle app libs dirs)
       math(EXPR i ${i}+1)
       if(APPLE)
         message(STATUS "${i}/${n}: fixing up '${${key}_RESOLVED_EMBEDDED_ITEM}'")
-        fixup_bundle_item("${${key}_RESOLVED_EMBEDDED_ITEM}" "${executable}" "${dirs}")
+        fixup_bundle_item("${${key}_RESOLVED_EMBEDDED_ITEM}" "${exepath}" "${dirs}")
       else()
         message(STATUS "${i}/${n}: fix-up not required on this platform '${${key}_RESOLVED_EMBEDDED_ITEM}'")
       endif()
@@ -811,12 +751,13 @@ function(verify_bundle_prerequisites bundle result_var info_var)
   foreach(f ${file_list})
     is_file_executable("${f}" is_executable)
     if(is_executable)
+      get_filename_component(exepath "${f}" PATH)
       math(EXPR count "${count} + 1")
 
       message(STATUS "executable file ${count}: ${f}")
 
       set(prereqs "")
-      get_prerequisites("${f}" prereqs 1 1 "${executable}" "")
+      get_prerequisites("${f}" prereqs 1 1 "${exepath}" "")
 
       # On the Mac,
       # "embedded" and "system" prerequisites are fine... anything else means
@@ -830,7 +771,7 @@ function(verify_bundle_prerequisites bundle result_var info_var)
 
       foreach(p ${prereqs})
         set(p_type "")
-        gp_file_type("${f}" "${p}" "${main_bundle_exe}" p_type)
+        gp_file_type("${f}" "${p}" p_type)
 
         if(APPLE)
           if(NOT "${p_type}" STREQUAL "embedded" AND NOT "${p_type}" STREQUAL "system")
diff --git a/Modules/GetPrerequisites.cmake b/Modules/GetPrerequisites.cmake
index d655f96..05c2edb 100644
--- a/Modules/GetPrerequisites.cmake
+++ b/Modules/GetPrerequisites.cmake
@@ -41,7 +41,7 @@
 # ::
 #
 #   GET_PREREQUISITES(<target> <prerequisites_var> <exclude_system> <recurse>
-#                     <executable> <dirs>)
+#                     <exepath> <dirs>)
 #
 # Get the list of shared library files required by <target>.  The list
 # in the variable named <prerequisites_var> should be empty on first
@@ -53,7 +53,7 @@
 # <exclude_system> must be 0 or 1 indicating whether to include or
 # exclude "system" prerequisites.  If <recurse> is set to 1 all
 # prerequisites will be found recursively, if set to 0 only direct
-# prerequisites are listed.  <executable> is the path to the top level
+# prerequisites are listed.  <exepath> is the path to the top level
 # executable used for @executable_path replacment on the Mac.  <dirs> is
 # a list of paths where libraries might be found: these paths are
 # searched first when a target without any path info is given.  Then
@@ -113,7 +113,7 @@
 #
 # ::
 #
-#   GP_RESOLVE_ITEM(<context> <item> <executable> <dirs> <resolved_item_var>)
+#   GP_RESOLVE_ITEM(<context> <item> <exepath> <dirs> <resolved_item_var>)
 #
 # Resolve an item into an existing full path file.
 #
@@ -122,13 +122,13 @@
 #
 # ::
 #
-#   GP_RESOLVED_FILE_TYPE(<original_file> <file> <executable> <dirs> <type_var>)
+#   GP_RESOLVED_FILE_TYPE(<original_file> <file> <exepath> <dirs> <type_var>)
 #
 # Return the type of <file> with respect to <original_file>.  String
 # describing type of prerequisite is returned in variable named
 # <type_var>.
 #
-# Use <executable> and <dirs> if necessary to resolve non-absolute <file>
+# Use <exepath> and <dirs> if necessary to resolve non-absolute <file>
 # values -- but only for non-embedded items.
 #
 # Possible types are:
@@ -318,12 +318,10 @@ function(gp_item_default_embedded_path item default_embedded_path_var)
 endfunction()
 
 
-function(gp_resolve_item context item executable dirs resolved_item_var)
+function(gp_resolve_item context item exepath dirs resolved_item_var)
   set(resolved 0)
   set(resolved_item "${item}")
 
-  get_filename_component(exepath "${executable}" PATH)
-
   # Is it already resolved?
   #
   if(IS_ABSOLUTE "${resolved_item}" AND EXISTS "${resolved_item}")
@@ -331,9 +329,9 @@ function(gp_resolve_item context item executable dirs resolved_item_var)
   endif()
 
   if(NOT resolved)
-    if(item MATCHES "^@executable_path")
+    if(item MATCHES "@executable_path")
       #
-      # @executable_path references are assumed relative to executable
+      # @executable_path references are assumed relative to exepath
       #
       string(REPLACE "@executable_path" "${exepath}" ri "${item}")
       get_filename_component(ri "${ri}" ABSOLUTE)
@@ -349,7 +347,7 @@ function(gp_resolve_item context item executable dirs resolved_item_var)
   endif()
 
   if(NOT resolved)
-    if(item MATCHES "^@loader_path")
+    if(item MATCHES "@loader_path")
       #
       # @loader_path references are assumed relative to the
       # PATH of the given "context" (presumably another library)
@@ -369,18 +367,17 @@ function(gp_resolve_item context item executable dirs resolved_item_var)
   endif()
 
   if(NOT resolved)
-    if(item MATCHES "^@rpath")
+    if(item MATCHES "@rpath")
       #
       # @rpath references are relative to the paths built into the binaries with -rpath
       # We handle this case like we do for other Unixes
       #
       string(REPLACE "@rpath/" "" norpath_item "${item}")
 
-      get_item_key("${executable}" key)
       set(ri "ri-NOTFOUND")
-      find_file(ri "${norpath_item}" ${dirs} ${${key}_RPATHS} NO_DEFAULT_PATH)
+      find_file(ri "${norpath_item}" ${exepath} ${dirs} NO_DEFAULT_PATH)
       if(ri)
-        #message(STATUS "info: 'find_file' in exepath/rpaths/dirs (${ri})")
+        #message(STATUS "info: 'find_file' in exepath/dirs (${ri})")
         set(resolved 1)
         set(resolved_item "${ri}")
         set(ri "ri-NOTFOUND")
@@ -439,7 +436,7 @@ function(gp_resolve_item context item executable dirs resolved_item_var)
   # by whatever logic they choose:
   #
   if(COMMAND gp_resolve_item_override)
-    gp_resolve_item_override("${context}" "${item}" "${executable}" "${dirs}" resolved_item resolved)
+    gp_resolve_item_override("${context}" "${item}" "${exepath}" "${dirs}" resolved_item resolved)
   endif()
 
   if(NOT resolved)
@@ -462,7 +459,7 @@ warning: cannot resolve item '${item}'
 #
 #    context='${context}'
 #    item='${item}'
-#    executable='${executable}'
+#    exepath='${exepath}'
 #    dirs='${dirs}'
 #    resolved_item_var='${resolved_item_var}'
 #******************************************************************************
@@ -473,7 +470,7 @@ warning: cannot resolve item '${item}'
 endfunction()
 
 
-function(gp_resolved_file_type original_file file executable dirs type_var)
+function(gp_resolved_file_type original_file file exepath dirs type_var)
   #message(STATUS "**")
 
   if(NOT IS_ABSOLUTE "${original_file}")
@@ -492,7 +489,7 @@ function(gp_resolved_file_type original_file file executable dirs type_var)
 
   if(NOT is_embedded)
     if(NOT IS_ABSOLUTE "${file}")
-      gp_resolve_item("${original_file}" "${file}" "${executable}" "${dirs}" resolved_file)
+      gp_resolve_item("${original_file}" "${file}" "${exepath}" "${dirs}" resolved_file)
     endif()
 
     string(TOLOWER "${original_file}" original_lower)
@@ -598,19 +595,21 @@ function(gp_resolved_file_type original_file file executable dirs type_var)
 endfunction()
 
 
-function(gp_file_type original_file file executable type_var)
+function(gp_file_type original_file file type_var)
   if(NOT IS_ABSOLUTE "${original_file}")
     message(STATUS "warning: gp_file_type expects absolute full path for first arg original_file")
   endif()
 
+  get_filename_component(exepath "${original_file}" PATH)
+
   set(type "")
-  gp_resolved_file_type("${original_file}" "${file}" "${executable}" "" type)
+  gp_resolved_file_type("${original_file}" "${file}" "${exepath}" "" type)
 
   set(${type_var} "${type}" PARENT_SCOPE)
 endfunction()
 
 
-function(get_prerequisites target prerequisites_var exclude_system recurse exe dirs)
+function(get_prerequisites target prerequisites_var exclude_system recurse exepath dirs)
   set(verbose 0)
   set(eol_char "E")
 
@@ -835,7 +834,7 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exe d
 
     if(add_item AND ${exclude_system})
       set(type "")
-      gp_resolved_file_type("${target}" "${item}" "${executable}" "${dirs}" type)
+      gp_resolved_file_type("${target}" "${item}" "${exepath}" "${dirs}" type)
 
       if("${type}" STREQUAL "system")
         set(add_item 0)
@@ -856,7 +855,7 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exe d
         # that the analysis tools can simply accept it as input.
         #
         if(NOT list_length_before_append EQUAL list_length_after_append)
-          gp_resolve_item("${target}" "${item}" "${executable}" "${dirs}" resolved_item)
+          gp_resolve_item("${target}" "${item}" "${exepath}" "${dirs}" resolved_item)
           set(unseen_prereqs ${unseen_prereqs} "${resolved_item}")
         endif()
       endif()
@@ -875,7 +874,7 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exe d
   if(${recurse})
     set(more_inputs ${unseen_prereqs})
     foreach(input ${more_inputs})
-      get_prerequisites("${input}" ${prerequisites_var} ${exclude_system} ${recurse} "${executable}" "${dirs}")
+      get_prerequisites("${input}" ${prerequisites_var} ${exclude_system} ${recurse} "${exepath}" "${dirs}")
     endforeach()
   endif()
 
@@ -912,7 +911,7 @@ function(list_prerequisites target)
   get_filename_component(exepath "${target}" PATH)
 
   set(prereqs "")
-  get_prerequisites("${target}" prereqs ${exclude_system} ${all} "${target}" "")
+  get_prerequisites("${target}" prereqs ${exclude_system} ${all} "${exepath}" "")
 
   if(print_target)
     message(STATUS "File '${target}' depends on:")
@@ -926,7 +925,7 @@ function(list_prerequisites target)
     endif()
 
     if(print_prerequisite_type)
-      gp_file_type("${target}" "${d}" "" type)
+      gp_file_type("${target}" "${d}" type)
       set(type_str " (${type})")
     endif()
 
diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt
index 03c2fb4..8da88c1 100644
--- a/Source/QtDialog/CMakeLists.txt
+++ b/Source/QtDialog/CMakeLists.txt
@@ -35,32 +35,6 @@ if (Qt5Widgets_FOUND)
 
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
 
-  # We need to install Cocoa platform plugin and add qt.conf for Qt5 on Mac.
-  # FIXME: This should be part of Qt5 CMake scripts, but unfortunatelly
-  # Qt5 Mac support is missing there.
-  if(APPLE)
-    macro(install_qt5_plugin _qt_plugin_name _qt_plugins_var)
-      get_target_property(_qt_plugin_path "${_qt_plugin_name}" LOCATION)
-      if(EXISTS "${_qt_plugin_path}")
-        get_filename_component(_qt_plugin_file "${_qt_plugin_path}" NAME)
-        get_filename_component(_qt_plugin_type "${_qt_plugin_path}" PATH)
-        get_filename_component(_qt_plugin_type "${_qt_plugin_type}" NAME)
-        set(_qt_plugin_dest "${CMAKE_INSTALL_PREFIX}/PlugIns/${_qt_plugin_type}")
-        install(FILES "${_qt_plugin_path}"
-          DESTINATION "${_qt_plugin_dest}")
-        set(${_qt_plugins_var}
-          "${${_qt_plugins_var}};${_qt_plugin_dest}/${_qt_plugin_file}")
-      else()
-        message(FATAL_ERROR "QT plugin ${_qt_plugin_name} not found")
-      endif()
-    endmacro()
-    install_qt5_plugin("Qt5::QCocoaIntegrationPlugin" QT_PLUGINS)
-    file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/qt.conf"
-      "[Paths]\nPlugins = PlugIns\n")
-    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/qt.conf"
-      DESTINATION "${CMAKE_INSTALL_PREFIX}/Resources")
-  endif()
-
   if(WIN32 AND TARGET Qt5::Core)
     get_property(_Qt5_Core_LOCATION TARGET Qt5::Core PROPERTY LOCATION)
     get_filename_component(Qt_BIN_DIR "${_Qt5_Core_LOCATION}" PATH)
@@ -194,7 +168,7 @@ if(APPLE OR WIN32)
   install(CODE "
     include(\"${CMake_SOURCE_DIR}/Modules/BundleUtilities.cmake\")
     set(BU_CHMOD_BUNDLE_ITEMS ON)
-    fixup_bundle(\"${fixup_exe}\" \"${QT_PLUGINS}\" \"${QT_LIBRARY_DIR};${QT_BINARY_DIR}\")
+    fixup_bundle(\"${fixup_exe}\" \"\" \"${QT_LIBRARY_DIR};${QT_BINARY_DIR}\")
   ")
 endif()
 

-----------------------------------------------------------------------

Summary of changes:
 Modules/BundleUtilities.cmake  |  141 ++++++++++++----------------------------
 Modules/GetPrerequisites.cmake |   53 ++++++++-------
 Source/QtDialog/CMakeLists.txt |   28 +-------
 3 files changed, 68 insertions(+), 154 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list