Merge topic 'fixup_bundle_item-fix'

45ed314bff BundleUtilities: do not run install_name_tool on scripts

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5071
This commit is contained in:
Brad King 2020-07-29 12:12:05 +00:00 committed by Kitware Robot
commit 37e27aa552
6 changed files with 38 additions and 5 deletions

View File

@ -894,11 +894,16 @@ function(fixup_bundle_item resolved_embedded_item exepath dirs)
# to install_name_tool:
#
if(changes)
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}'")
message(FATAL_ERROR "Command failed:\n ${msg}")
# Check for a script by extension (.bat,.sh,...) or if the file starts with "#!" (shebang)
file(READ ${resolved_embedded_item} file_contents LIMIT 5)
if(NOT "${resolved_embedded_item}" MATCHES "\\.(bat|c?sh|bash|ksh|cmd)$" AND
NOT file_contents MATCHES "^#!")
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}'")
message(FATAL_ERROR "Command failed:\n ${msg}")
endif()
endif()
endif()
endfunction()

View File

@ -0,0 +1,18 @@
include(BundleUtilities)
set(BU_CHMOD_BUNDLE_ITEMS ON)
function(check_script script)
fixup_bundle_item(${script} ${script} "" "")
endfunction()
# Should not throw any errors
# Shell script
set(script_sh_EMBEDDED_ITEM ${CMAKE_CURRENT_LIST_DIR}/test.app/script.sh)
check_script(${CMAKE_CURRENT_LIST_DIR}/test.app/script.sh)
# Batch script
set(script_bat_EMBEDDED_ITEM ${CMAKE_CURRENT_LIST_DIR}/test.app/script.bat)
check_script(${CMAKE_CURRENT_LIST_DIR}/test.app/script.bat)
# Shell script without extension
set(script_EMBEDDED_ITEM ${CMAKE_CURRENT_LIST_DIR}/test.app/script)
check_script(${CMAKE_CURRENT_LIST_DIR}/test.app/script)

View File

@ -9,3 +9,4 @@ run_cmake(CMP0080-WARN)
run_cmake_command(CMP0080-COMMAND-OLD ${CMAKE_COMMAND} -DCMP0080_VALUE:STRING=OLD -P ${RunCMake_SOURCE_DIR}/CMP0080-COMMAND.cmake)
run_cmake_command(CMP0080-COMMAND-NEW ${CMAKE_COMMAND} -DCMP0080_VALUE:STRING=NEW -P ${RunCMake_SOURCE_DIR}/CMP0080-COMMAND.cmake)
run_cmake_command(CMP0080-COMMAND-WARN ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/CMP0080-COMMAND.cmake)
run_cmake_command(ExecutableScripts ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/ExecutableScripts.cmake)

View File

@ -0,0 +1,3 @@
#!/bin/bash
echo "Hello World"

View File

@ -0,0 +1,3 @@
@echo off
echo "Hello world"

View File

@ -0,0 +1,3 @@
#!/bin/bash
echo "Hello World"