Commit e93a4b4d authored by David Cole's avatar David Cole

Avoid adding self as prerequisite. (#10417)

Thanks to Clinton Stimpson for the patch.
parent 409c936f
...@@ -412,7 +412,7 @@ function(get_bundle_keys app libs dirs keys_var) ...@@ -412,7 +412,7 @@ function(get_bundle_keys app libs dirs keys_var)
# but that do not show up in otool -L output...) # but that do not show up in otool -L output...)
# #
foreach(lib ${libs}) foreach(lib ${libs})
set_bundle_key_values(${keys_var} "${lib}" "${lib}" "${exepath}" "${dirs}" 1) set_bundle_key_values(${keys_var} "${lib}" "${lib}" "${exepath}" "${dirs}" 0)
set(prereqs "") set(prereqs "")
get_prerequisites("${lib}" prereqs 1 1 "${exepath}" "${dirs}") get_prerequisites("${lib}" prereqs 1 1 "${exepath}" "${dirs}")
......
...@@ -634,6 +634,23 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa ...@@ -634,6 +634,23 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa
string(REGEX REPLACE ";" "\\\\;" candidates "${gp_cmd_ov}") string(REGEX REPLACE ";" "\\\\;" candidates "${gp_cmd_ov}")
string(REGEX REPLACE "\n" "${eol_char};" candidates "${candidates}") string(REGEX REPLACE "\n" "${eol_char};" candidates "${candidates}")
# check for install id and remove it from list, since otool -L can include a
# reference to itself
set(gp_install_id)
if("${gp_tool}" STREQUAL "otool")
execute_process(
COMMAND otool -D ${target}
OUTPUT_VARIABLE gp_install_id_ov
)
# second line is install name
string(REGEX REPLACE ".*:\n" "" gp_install_id "${gp_install_id_ov}")
if(gp_install_id)
# trim
string(REGEX MATCH "[^\n ].*[^\n ]" gp_install_id "${gp_install_id}")
#message("INSTALL ID is \"${gp_install_id}\"")
endif(gp_install_id)
endif("${gp_tool}" STREQUAL "otool")
# Analyze each line for file names that match the regular expression: # Analyze each line for file names that match the regular expression:
# #
foreach(candidate ${candidates}) foreach(candidate ${candidates})
...@@ -670,14 +687,18 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa ...@@ -670,14 +687,18 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa
# #
set(add_item 1) set(add_item 1)
if(${exclude_system}) if("${item}" STREQUAL "${gp_install_id}")
set(add_item 0)
endif("${item}" STREQUAL "${gp_install_id}")
if(add_item AND ${exclude_system})
set(type "") set(type "")
gp_resolved_file_type("${target}" "${item}" "${exepath}" "${dirs}" type) gp_resolved_file_type("${target}" "${item}" "${exepath}" "${dirs}" type)
if("${type}" STREQUAL "system") if("${type}" STREQUAL "system")
set(add_item 0) set(add_item 0)
endif("${type}" STREQUAL "system") endif("${type}" STREQUAL "system")
endif(${exclude_system}) endif(add_item AND ${exclude_system})
if(add_item) if(add_item)
list(LENGTH ${prerequisites_var} list_length_before_append) list(LENGTH ${prerequisites_var} list_length_before_append)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment