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, master has been updated via 99a0a6d8163f27daf08e53da95b8c685bcd5189e (commit) via 08be74bfd7e24af9ffdb64dddffd3d56bf52c3ce (commit) via 52445300d67df73b5b8c288cc33c915053c7ba24 (commit) via 1bac4678eaf7beefb12ad91ecdea0e551b4d0fcf (commit) via 5072598f0795f44e157bef8423feda7de24c5504 (commit) via 428680da92b98755be1a908ee4a5d705d8753bb9 (commit) from d3e0e65de3dc8fbc8b96ef9780bffe7390bf6b70 (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 ----------------------------------------------------------------- https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=99a0a6d8163f27daf08e53da95b8c685bcd5189e commit 99a0a6d8163f27daf08e53da95b8c685bcd5189e Merge: d3e0e65 08be74b Author: Craig Scott <craig.sc...@crascit.com> AuthorDate: Sun Jan 6 20:05:18 2019 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Sun Jan 6 15:05:32 2019 -0500 Merge topic 'bundle_fixes' 08be74bfd7 GetPrerequisites: Fix handling of executable scripts 52445300d6 GetPrerequisites: Allow prefixed tools 1bac4678ea GetPrerequisites: Add GET_PREREQUISITES_VERBOSE to set verbose 5072598f07 BundleUtilites: Don't use hardcoded name for install_name_tool 428680da92 GetPrerequisites: Don't use hardcoded name for otool Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !2748 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=08be74bfd7e24af9ffdb64dddffd3d56bf52c3ce commit 08be74bfd7e24af9ffdb64dddffd3d56bf52c3ce Author: Alexander Grund <g...@grundis.de> AuthorDate: Sun Dec 16 18:05:23 2018 +0100 Commit: Craig Scott <craig.sc...@crascit.com> CommitDate: Sat Jan 5 09:09:39 2019 +1100 GetPrerequisites: Fix handling of executable scripts Fixes: #18667 diff --git a/Modules/GetPrerequisites.cmake b/Modules/GetPrerequisites.cmake index d3b773c..fa6d75a 100644 --- a/Modules/GetPrerequisites.cmake +++ b/Modules/GetPrerequisites.cmake @@ -660,6 +660,15 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa return() endif() + # Check for a script by extension (.bat,.sh,...) or if the file starts with "#!" (shebang) + file(READ ${target} file_contents LIMIT 5) + if(target MATCHES "\\.(bat|c?sh|bash|ksh|cmd)$" OR file_contents MATCHES "^#!") + message(STATUS "GetPrequisites(${target}) : ignoring script file") + # Clear var + set(${prerequisites_var} "" PARENT_SCOPE) + return() + endif() + set(gp_cmd_paths ${gp_cmd_paths} "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\14.0;InstallDir]/../../VC/bin" "$ENV{VS140COMNTOOLS}/../../VC/bin" diff --git a/Tests/RunCMake/GetPrerequisites/ExecutableScripts-stdout.txt b/Tests/RunCMake/GetPrerequisites/ExecutableScripts-stdout.txt new file mode 100644 index 0000000..5a353d8 --- /dev/null +++ b/Tests/RunCMake/GetPrerequisites/ExecutableScripts-stdout.txt @@ -0,0 +1,3 @@ +-- GetPrequisites\(.*script.sh\) : ignoring script file +-- GetPrequisites\(.*script.bat\) : ignoring script file +-- GetPrequisites\(.*script\) : ignoring script file diff --git a/Tests/RunCMake/GetPrerequisites/ExecutableScripts.cmake b/Tests/RunCMake/GetPrerequisites/ExecutableScripts.cmake new file mode 100644 index 0000000..d1bc9b1 --- /dev/null +++ b/Tests/RunCMake/GetPrerequisites/ExecutableScripts.cmake @@ -0,0 +1,19 @@ +include(GetPrerequisites) + +function(check_script script) + set(prereqs "") + get_prerequisites(${script} prereqs 1 1 "" "") + if(NOT "${prereqs}" STREQUAL "") + message(FATAL_ERROR "Prerequisites for ${script} not empty") + endif() +endfunction() + +# Should not throw any errors +# Regular executable +get_prerequisites(${CMAKE_COMMAND} cmake_prereqs 1 1 "" "") +# Shell script +check_script(${CMAKE_CURRENT_LIST_DIR}/script.sh) +# Batch script +check_script(${CMAKE_CURRENT_LIST_DIR}/script.bat) +# Shell script without extension +check_script(${CMAKE_CURRENT_LIST_DIR}/script) diff --git a/Tests/RunCMake/GetPrerequisites/RunCMakeTest.cmake b/Tests/RunCMake/GetPrerequisites/RunCMakeTest.cmake index 3856c54..a635e38 100644 --- a/Tests/RunCMake/GetPrerequisites/RunCMakeTest.cmake +++ b/Tests/RunCMake/GetPrerequisites/RunCMakeTest.cmake @@ -1,3 +1,4 @@ include(RunCMake) run_cmake_command(TargetMissing ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/TargetMissing.cmake) +run_cmake_command(ExecutableScripts ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/ExecutableScripts.cmake) diff --git a/Tests/RunCMake/GetPrerequisites/script b/Tests/RunCMake/GetPrerequisites/script new file mode 100755 index 0000000..23bf47c --- /dev/null +++ b/Tests/RunCMake/GetPrerequisites/script @@ -0,0 +1,3 @@ +#!/bin/bash + +echo "Hello World" diff --git a/Tests/RunCMake/GetPrerequisites/script.bat b/Tests/RunCMake/GetPrerequisites/script.bat new file mode 100755 index 0000000..dbb0ec2 --- /dev/null +++ b/Tests/RunCMake/GetPrerequisites/script.bat @@ -0,0 +1,3 @@ +@echo off + +echo "Hello world" diff --git a/Tests/RunCMake/GetPrerequisites/script.sh b/Tests/RunCMake/GetPrerequisites/script.sh new file mode 100755 index 0000000..23bf47c --- /dev/null +++ b/Tests/RunCMake/GetPrerequisites/script.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +echo "Hello World" https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=52445300d67df73b5b8c288cc33c915053c7ba24 commit 52445300d67df73b5b8c288cc33c915053c7ba24 Author: Alexander Grund <g...@grundis.de> AuthorDate: Sun Dec 16 17:18:41 2018 +0100 Commit: Craig Scott <craig.sc...@crascit.com> CommitDate: Mon Dec 31 11:56:40 2018 +1100 GetPrerequisites: Allow prefixed tools e.g. for cross-compilation with e.g. x86_64-pc-linux-gnu-ldd diff --git a/Modules/GetPrerequisites.cmake b/Modules/GetPrerequisites.cmake index fea299c..d3b773c 100644 --- a/Modules/GetPrerequisites.cmake +++ b/Modules/GetPrerequisites.cmake @@ -718,25 +718,25 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa set(gp_cmd_maybe_filter) # optional command to pre-filter gp_tool results - if(gp_tool STREQUAL "ldd") + if(gp_tool MATCHES "ldd$") set(gp_cmd_args "") set(gp_regex "^[\t ]*[^\t ]+ => ([^\t\(]+) .*${eol_char}$") set(gp_regex_error "not found${eol_char}$") set(gp_regex_fallback "^[\t ]*([^\t ]+) => ([^\t ]+).*${eol_char}$") set(gp_regex_cmp_count 1) - elseif(gp_tool STREQUAL "otool") + elseif(gp_tool MATCHES "otool$") set(gp_cmd_args "-L") set(gp_regex "^\t([^\t]+) \\(compatibility version ([0-9]+.[0-9]+.[0-9]+), current version ([0-9]+.[0-9]+.[0-9]+)\\)${eol_char}$") set(gp_regex_error "") set(gp_regex_fallback "") set(gp_regex_cmp_count 3) - elseif(gp_tool STREQUAL "dumpbin") + elseif(gp_tool MATCHES "dumpbin$") set(gp_cmd_args "/dependents") set(gp_regex "^ ([^ ].*[Dd][Ll][Ll])${eol_char}$") set(gp_regex_error "") set(gp_regex_fallback "") set(gp_regex_cmp_count 1) - elseif(gp_tool STREQUAL "objdump") + elseif(gp_tool MATCHES "objdump$") set(gp_cmd_args "-p") set(gp_regex "^\t*DLL Name: (.*\\.[Dd][Ll][Ll])${eol_char}$") set(gp_regex_error "") @@ -759,7 +759,7 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa endif() - if(gp_tool STREQUAL "dumpbin") + if(gp_tool MATCHES "dumpbin$") # When running dumpbin, it also needs the "Common7/IDE" directory in the # PATH. It will already be in the PATH if being run from a Visual Studio # command prompt. Add it to the PATH here in case we are running from a @@ -788,7 +788,7 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa # # </setup-gp_tool-vars> - if(gp_tool STREQUAL "ldd") + if(gp_tool MATCHES "ldd$") set(old_ld_env "$ENV{LD_LIBRARY_PATH}") set(new_ld_env "${exepath}") foreach(dir ${dirs}) @@ -813,7 +813,7 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa ERROR_VARIABLE gp_ev ) - if(gp_tool STREQUAL "dumpbin") + if(gp_tool MATCHES "dumpbin$") # Exclude delay load dependencies under windows (they are listed in dumpbin output after the message below) string(FIND "${gp_cmd_ov}" "Image has the following delay load dependencies" gp_delayload_pos) if (${gp_delayload_pos} GREATER -1) @@ -827,7 +827,7 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa endif() if(NOT gp_rv STREQUAL "0") - if(gp_tool STREQUAL "dumpbin") + if(gp_tool MATCHES "dumpbin$") # dumpbin error messages seem to go to stdout message(FATAL_ERROR "${gp_cmd} failed: ${gp_rv}\n${gp_ev}\n${gp_cmd_ov}") else() @@ -835,7 +835,7 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa endif() endif() - if(gp_tool STREQUAL "ldd") + if(gp_tool MATCHES "ldd$") set(ENV{LD_LIBRARY_PATH} "${old_ld_env}") endif() @@ -855,7 +855,7 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa # 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") + if(gp_tool MATCHES "otool$") execute_process( COMMAND ${gp_cmd} -D ${target} RESULT_VARIABLE otool_rv https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1bac4678eaf7beefb12ad91ecdea0e551b4d0fcf commit 1bac4678eaf7beefb12ad91ecdea0e551b4d0fcf Author: Alexander Grund <g...@grundis.de> AuthorDate: Sun Dec 16 17:14:23 2018 +0100 Commit: Craig Scott <craig.sc...@crascit.com> CommitDate: Mon Dec 31 11:56:40 2018 +1100 GetPrerequisites: Add GET_PREREQUISITES_VERBOSE to set verbose diff --git a/Modules/GetPrerequisites.cmake b/Modules/GetPrerequisites.cmake index 8d54fed..fea299c 100644 --- a/Modules/GetPrerequisites.cmake +++ b/Modules/GetPrerequisites.cmake @@ -63,6 +63,9 @@ searched first when a target without any path info is given. Then standard system locations are also searched: PATH, Framework locations, /usr/lib... +The variable GET_PREREQUISITES_VERBOSE can be set to true to enable verbose +output. + :: LIST_PREREQUISITES(<target> [<recurse> [<exclude_system> [<verbose>]]]) @@ -644,6 +647,10 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa set(rpaths "") endif() + if(GET_PREREQUISITES_VERBOSE) + set(verbose 1) + endif() + if(NOT IS_ABSOLUTE "${target}") message("warning: target '${target}' is not absolute...") endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5072598f0795f44e157bef8423feda7de24c5504 commit 5072598f0795f44e157bef8423feda7de24c5504 Author: Alexander Grund <g...@grundis.de> AuthorDate: Sun Dec 30 15:17:35 2018 +0100 Commit: Craig Scott <craig.sc...@crascit.com> CommitDate: Mon Dec 31 11:56:40 2018 +1100 BundleUtilites: Don't use hardcoded name for install_name_tool diff --git a/Modules/BundleUtilities.cmake b/Modules/BundleUtilities.cmake index 10e5510..d5c47f8 100644 --- a/Modules/BundleUtilities.cmake +++ b/Modules/BundleUtilities.cmake @@ -877,9 +877,13 @@ function(fixup_bundle_item resolved_embedded_item exepath dirs) execute_process(COMMAND chmod u+w "${resolved_embedded_item}") endif() + # CMAKE_INSTALL_NAME_TOOL may not be set if executed in script mode + # Duplicated from CMakeFindBinUtils.cmake + find_program(CMAKE_INSTALL_NAME_TOOL NAMES install_name_tool HINTS ${_CMAKE_TOOLCHAIN_LOCATION}) + # Only if install_name_tool supports -delete_rpath: # - execute_process(COMMAND install_name_tool + execute_process(COMMAND ${CMAKE_INSTALL_NAME_TOOL} OUTPUT_VARIABLE install_name_tool_usage ERROR_VARIABLE install_name_tool_usage ) @@ -897,7 +901,7 @@ function(fixup_bundle_item resolved_embedded_item exepath dirs) # to install_name_tool: # if(changes) - set(cmd install_name_tool ${changes} "${resolved_embedded_item}") + set(cmd ${CMAKE_INSTALL_NAME_TOOL} ${changes} "${resolved_embedded_item}") execute_process(COMMAND ${cmd} RESULT_VARIABLE install_name_tool_result) if(NOT install_name_tool_result EQUAL 0) string(REPLACE ";" "' '" msg "'${cmd}'") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=428680da92b98755be1a908ee4a5d705d8753bb9 commit 428680da92b98755be1a908ee4a5d705d8753bb9 Author: Alexander Grund <g...@grundis.de> AuthorDate: Sun Dec 30 15:08:49 2018 +0100 Commit: Alexander Grund <g...@grundis.de> CommitDate: Sun Dec 30 15:08:49 2018 +0100 GetPrerequisites: Don't use hardcoded name for otool diff --git a/Modules/GetPrerequisites.cmake b/Modules/GetPrerequisites.cmake index 5b32f7c..8d54fed 100644 --- a/Modules/GetPrerequisites.cmake +++ b/Modules/GetPrerequisites.cmake @@ -850,7 +850,7 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa set(gp_install_id) if(gp_tool STREQUAL "otool") execute_process( - COMMAND otool -D ${target} + COMMAND ${gp_cmd} -D ${target} RESULT_VARIABLE otool_rv OUTPUT_VARIABLE gp_install_id_ov ERROR_VARIABLE otool_ev ----------------------------------------------------------------------- Summary of changes: Modules/BundleUtilities.cmake | 8 +++-- Modules/GetPrerequisites.cmake | 38 +++++++++++++++------- .../GetPrerequisites/ExecutableScripts-stdout.txt | 3 ++ .../GetPrerequisites/ExecutableScripts.cmake | 19 +++++++++++ Tests/RunCMake/GetPrerequisites/RunCMakeTest.cmake | 1 + Tests/RunCMake/GetPrerequisites/script | 3 ++ Tests/RunCMake/GetPrerequisites/script.bat | 3 ++ Tests/RunCMake/GetPrerequisites/script.sh | 3 ++ 8 files changed, 65 insertions(+), 13 deletions(-) create mode 100644 Tests/RunCMake/GetPrerequisites/ExecutableScripts-stdout.txt create mode 100644 Tests/RunCMake/GetPrerequisites/ExecutableScripts.cmake create mode 100755 Tests/RunCMake/GetPrerequisites/script create mode 100755 Tests/RunCMake/GetPrerequisites/script.bat create mode 100755 Tests/RunCMake/GetPrerequisites/script.sh hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org https://cmake.org/mailman/listinfo/cmake-commits