Modules: Tolerate CMAKE_EXECUTE_PROCESS_COMMAND_ERROR_IS_FATAL Capture `execute_process` calls' `RESULT_VARIABLE`. We don't actually need to check the result as we presume the existing logic is already adequate, and sometimes programs return non-zero values as result of valid query. I.e. this is a "safe" way to broadly protect these scripts. Issue: #27782
diff --git a/CMakeLists.txt b/CMakeLists.txt index b391315..866390c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -429,6 +429,7 @@ execute_process(COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} -dumpversion OUTPUT_VARIABLE _GXX_VERSION + RESULT_VARIABLE _GXX_VERSION_RESULT ) string(REGEX REPLACE "([0-9])\\.([0-9])(\\.[0-9])?" "\\1\\2" _GXX_VERSION_SHORT ${_GXX_VERSION})
diff --git a/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake b/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake index f6389d6..234fb5f 100644 --- a/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake +++ b/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake
@@ -41,7 +41,8 @@ set(${file_exists} "") execute_process( COMMAND ${adb_executable} shell ls ${device_file} - OUTPUT_VARIABLE out_var ERROR_VARIABLE out_var) + OUTPUT_VARIABLE out_var ERROR_VARIABLE out_var + RESULT_VARIABLE _result_check_file) if(NOT out_var) # when a directory exists but is empty the output is empty set(${file_exists} "YES") else()
diff --git a/Modules/BundleUtilities.cmake b/Modules/BundleUtilities.cmake index 40821e0..782e8ad 100644 --- a/Modules/BundleUtilities.cmake +++ b/Modules/BundleUtilities.cmake
@@ -695,6 +695,7 @@ -type f \( -perm -0100 -o -perm -0010 -o -perm -0001 \) OUTPUT_VARIABLE file_list OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _result_find ) string(REPLACE "\n" ";" file_list "${file_list}") else() @@ -991,7 +992,9 @@ if (NOT EXISTS "${target_dir}") file(MAKE_DIRECTORY "${target_dir}") endif() - execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${symlink_target}" "${resolved_embedded_item}") + execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${symlink_target}" + "${resolved_embedded_item}" + RESULT_VARIABLE _result_symlink) endif() endfunction() @@ -1009,7 +1012,9 @@ message(STATUS "warning: resolved_item == resolved_embedded_item - not copying...") else() #message(STATUS "copying COMMAND ${CMAKE_COMMAND} -E copy ${resolved_item} ${resolved_embedded_item}") - execute_process(COMMAND ${CMAKE_COMMAND} -E copy "${resolved_item}" "${resolved_embedded_item}") + execute_process(COMMAND ${CMAKE_COMMAND} -E copy "${resolved_item}" + "${resolved_embedded_item}" + RESULT_VARIABLE _result_copy) if(UNIX AND NOT APPLE) file(RPATH_REMOVE FILE "${resolved_embedded_item}") endif() @@ -1042,14 +1047,18 @@ else() # Framework lib itself: #message(STATUS "copying COMMAND ${CMAKE_COMMAND} -E copy ${resolved_item} ${resolved_embedded_item}") - execute_process(COMMAND ${CMAKE_COMMAND} -E copy "${resolved_item}" "${resolved_embedded_item}") + execute_process(COMMAND ${CMAKE_COMMAND} -E copy "${resolved_item}" + "${resolved_embedded_item}" + RESULT_VARIABLE _result_copy) # Plus Resources, if they exist: string(REGEX REPLACE "^(.*)/[^/]+$" "\\1/Resources" resolved_resources "${resolved_item}") string(REGEX REPLACE "^(.*)/[^/]+$" "\\1/Resources" resolved_embedded_resources "${resolved_embedded_item}") if(EXISTS "${resolved_resources}") #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}") + execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory + "${resolved_resources}" "${resolved_embedded_resources}" + RESULT_VARIABLE _result_copy_resources) endif() # Some frameworks e.g. Qt put Info.plist in wrong place, so when it is @@ -1060,7 +1069,9 @@ string(REGEX REPLACE "^(.*)/[^/]+$" "\\1/Resources/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}") + execute_process(COMMAND ${CMAKE_COMMAND} -E copy + "${resolved_info_plist}" "${resolved_embedded_info_plist}" + RESULT_VARIABLE _result_copy_info_plist) endif() endif() @@ -1071,17 +1082,25 @@ if(resolved_embedded_versions_basename STREQUAL "Versions") # Ensure Current symlink points to the framework version if(NOT EXISTS "${resolved_embedded_versions}/Current") - execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${resolved_embedded_version}" "${resolved_embedded_versions}/Current") + execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink + "${resolved_embedded_version}" + "${resolved_embedded_versions}/Current" + RESULT_VARIABLE _result_symlink_current) endif() # Restore symlinks in framework root pointing to current framework # binary and resources: string(REGEX REPLACE "^(.*)/[^/]+/[^/]+/[^/]+$" "\\1" resolved_embedded_root "${resolved_embedded_item}") string(REGEX REPLACE "^.*/([^/]+)$" "\\1" resolved_embedded_item_basename "${resolved_embedded_item}") if(NOT EXISTS "${resolved_embedded_root}/${resolved_embedded_item_basename}") - execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "Versions/Current/${resolved_embedded_item_basename}" "${resolved_embedded_root}/${resolved_embedded_item_basename}") + execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink + "Versions/Current/${resolved_embedded_item_basename}" + "${resolved_embedded_root}/${resolved_embedded_item_basename}" + RESULT_VARIABLE _result_symlink_item) endif() if(NOT EXISTS "${resolved_embedded_root}/Resources") - execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "Versions/Current/Resources" "${resolved_embedded_root}/Resources") + execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink + "Versions/Current/Resources" "${resolved_embedded_root}/Resources" + RESULT_VARIABLE _result_symlink_resources) endif() endif() endif() @@ -1156,6 +1175,7 @@ execute_process(COMMAND ${CMAKE_INSTALL_NAME_TOOL} OUTPUT_VARIABLE install_name_tool_usage ERROR_VARIABLE install_name_tool_usage + RESULT_VARIABLE _result_install_name_tool_usage ) if(install_name_tool_usage MATCHES ".*-delete_rpath.*") foreach(rpath ${${ikey}_RPATHS}) @@ -1177,7 +1197,8 @@ NOT file_contents MATCHES "^#!") set(cmd ${CMAKE_INSTALL_NAME_TOOL} ${changes} "${resolved_embedded_item}") if(BU_CHMOD_BUNDLE_ITEMS) - execute_process(COMMAND chmod u+w "${resolved_embedded_item}") + execute_process(COMMAND chmod u+w "${resolved_embedded_item}" + RESULT_VARIABLE _result_chmod) endif() execute_process(COMMAND ${cmd} RESULT_VARIABLE install_name_tool_result) if(NOT install_name_tool_result EQUAL 0) @@ -1278,7 +1299,8 @@ function(copy_and_fixup_bundle src dst libs dirs) - execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory "${src}" "${dst}") + execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory "${src}" "${dst}" + RESULT_VARIABLE _result_copy_directory) fixup_bundle("${dst}" "${libs}" "${dirs}") endfunction()
diff --git a/Modules/CMakeAddFortranSubdirectory.cmake b/Modules/CMakeAddFortranSubdirectory.cmake index 7eec1f2..3b45f17 100644 --- a/Modules/CMakeAddFortranSubdirectory.cmake +++ b/Modules/CMakeAddFortranSubdirectory.cmake
@@ -154,7 +154,8 @@ set(_mingw_target "Target:.*mingw32") endif() execute_process(COMMAND "${MINGW_GFORTRAN}" -v - ERROR_VARIABLE out ERROR_STRIP_TRAILING_WHITESPACE) + ERROR_VARIABLE out ERROR_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _result_mingw_gfortran_v) if(NOT "${out}" MATCHES "${_mingw_target}") string(REPLACE "\n" "\n " out " ${out}") message(FATAL_ERROR
diff --git a/Modules/CMakeDetermineCSharpCompiler.cmake b/Modules/CMakeDetermineCSharpCompiler.cmake index 0528252..7512e69 100644 --- a/Modules/CMakeDetermineCSharpCompiler.cmake +++ b/Modules/CMakeDetermineCSharpCompiler.cmake
@@ -22,7 +22,10 @@ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake) CMAKE_DETERMINE_COMPILER_ID(CSharp CSFLAGS CMakeCSharpCompilerId.cs) - execute_process(COMMAND "${CMAKE_CSharp_COMPILER}" "/help /preferreduilang:en-US" OUTPUT_VARIABLE output) + execute_process(COMMAND "${CMAKE_CSharp_COMPILER}" + "/help /preferreduilang:en-US" + OUTPUT_VARIABLE output + RESULT_VARIABLE _result_csharp_help) string(REPLACE "\n" ";" output "${output}") foreach(line ${output}) string(TOUPPER ${line} line)
diff --git a/Modules/CMakeDetermineSwiftCompiler.cmake b/Modules/CMakeDetermineSwiftCompiler.cmake index e9285b6..d1c09fc 100644 --- a/Modules/CMakeDetermineSwiftCompiler.cmake +++ b/Modules/CMakeDetermineSwiftCompiler.cmake
@@ -99,7 +99,8 @@ # Execute in dry-run mode so no compilation will be actually performed. execute_process(COMMAND ${_CMAKE_Swift_COMPILER_CHECK_COMMAND} WORKING_DIRECTORY "${CMAKE_Swift_COMPILER_DRIVER_TEST_DIR}" - OUTPUT_VARIABLE _CMAKE_Swift_COMPILER_CHECK_OUTPUT) + OUTPUT_VARIABLE _CMAKE_Swift_COMPILER_CHECK_OUTPUT + RESULT_VARIABLE _result_CMAKE_Swift_COMPILER) # Check the first frontend execution. It is on the first line of output. # The old driver treats all inputs as Swift sources while the new driver @@ -133,7 +134,8 @@ endif() execute_process( COMMAND ${target_info_command} - OUTPUT_VARIABLE swift_target_info) + OUTPUT_VARIABLE swift_target_info + RESULT_VARIABLE _result_swift_target_info) message(CONFIGURE_LOG "Swift target info:\n" "${swift_target_info}") string(JSON module_triple GET "${swift_target_info}" "target" "moduleTriple") set(CMAKE_Swift_MODULE_TRIPLE ${module_triple})
diff --git a/Modules/CMakeDetermineVSServicePack.cmake b/Modules/CMakeDetermineVSServicePack.cmake index c9a9fb9..4f14874 100644 --- a/Modules/CMakeDetermineVSServicePack.cmake +++ b/Modules/CMakeDetermineVSServicePack.cmake
@@ -121,6 +121,7 @@ COMMAND ${CMAKE_CXX_COMPILER} -? ERROR_VARIABLE _output OUTPUT_QUIET + RESULT_VARIABLE _result_cl_help ) if(_output MATCHES "Compiler Version (([0-9]+)\\.([0-9]+)\\.([0-9]+)(\\.([0-9]+))?)")
diff --git a/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake b/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake index 0b21e36..b1e65c9 100644 --- a/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake +++ b/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
@@ -31,7 +31,8 @@ execute_process(COMMAND ${_compilerExecutable} ${_arg1} ${_stdver} ${_stdlib} -v -E -x ${_lang} -dD dummy WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles ERROR_VARIABLE _gccOutput - OUTPUT_VARIABLE _gccStdout ) + OUTPUT_VARIABLE _gccStdout + RESULT_VARIABLE _result_gcc) file(REMOVE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy") # First find the system include dirs:
diff --git a/Modules/CMakeFindJavaCommon.cmake b/Modules/CMakeFindJavaCommon.cmake index 95ca9b5..f3e3493 100644 --- a/Modules/CMakeFindJavaCommon.cmake +++ b/Modules/CMakeFindJavaCommon.cmake
@@ -22,6 +22,7 @@ OUTPUT_VARIABLE _CMD_JAVA_HOME OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET + RESULT_VARIABLE _result_java_home ) endif() if(_CMD_JAVA_HOME AND IS_DIRECTORY "${_CMD_JAVA_HOME}")
diff --git a/Modules/CMakeFindPackageMode.cmake b/Modules/CMakeFindPackageMode.cmake index 6e2762c..62e33e0 100644 --- a/Modules/CMakeFindPackageMode.cmake +++ b/Modules/CMakeFindPackageMode.cmake
@@ -71,7 +71,9 @@ find_program(FILE_EXECUTABLE file) if(FILE_EXECUTABLE) get_filename_component(FILE_ABSPATH "${FILE_EXECUTABLE}" ABSOLUTE) - execute_process(COMMAND "${FILE_ABSPATH}" "${FILE_ABSPATH}" OUTPUT_VARIABLE fileOutput ERROR_QUIET) + execute_process(COMMAND "${FILE_ABSPATH}" "${FILE_ABSPATH}" + OUTPUT_VARIABLE fileOutput ERROR_QUIET + RESULT_VARIABLE _result_file) if("${fileOutput}" MATCHES "64-bit") set(CMAKE_SIZEOF_VOID_P 8) endif()
diff --git a/Modules/CTestCoverageCollectGCOV.cmake b/Modules/CTestCoverageCollectGCOV.cmake index f36c022..acde687 100644 --- a/Modules/CTestCoverageCollectGCOV.cmake +++ b/Modules/CTestCoverageCollectGCOV.cmake
@@ -419,7 +419,9 @@ "--mtime=1970-01-01 0:0:0 UTC" "--format=gnutar" --files-from=${coverage_dir}/coverage_file_list.txt - WORKING_DIRECTORY ${binary_dir}) + WORKING_DIRECTORY ${binary_dir} + RESULT_VARIABLE _result_tar + ) if (GCOV_DELETE) foreach(gcov_file ${unfiltered_gcov_files})
diff --git a/Modules/ExternalProject/shared_internal_commands.cmake b/Modules/ExternalProject/shared_internal_commands.cmake index 64ad3e3..71d95c4 100644 --- a/Modules/ExternalProject/shared_internal_commands.cmake +++ b/Modules/ExternalProject/shared_internal_commands.cmake
@@ -13,6 +13,7 @@ OUTPUT_VARIABLE git_symbolic_ref OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET + RESULT_VARIABLE _result_git_symbolic_ref ) if(NOT git_symbolic_ref STREQUAL "") @@ -24,6 +25,7 @@ OUTPUT_VARIABLE git_remote_name OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET + RESULT_VARIABLE _result_git_branch_remote ) endif() @@ -36,6 +38,7 @@ OUTPUT_VARIABLE git_remote_list OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET + RESULT_VARIABLE _result_git_remote_list ) string(REPLACE "\n" ";" git_remote_list "${git_remote_list}") list(LENGTH git_remote_list git_remote_list_length) @@ -70,6 +73,7 @@ OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL LAST ENCODING UTF-8 # Needed to handle non-ascii characters in local paths + RESULT_VARIABLE _result_git_remote_url ) set("${output_variable}" "${git_remote_url}" PARENT_SCOPE)
diff --git a/Modules/FindCUDAToolkit.cmake b/Modules/FindCUDAToolkit.cmake index 73e30d2..98ac302 100644 --- a/Modules/FindCUDAToolkit.cmake +++ b/Modules/FindCUDAToolkit.cmake
@@ -1022,7 +1022,9 @@ endif() elseif(CUDAToolkit_NVCC_EXECUTABLE) # Compute the version by invoking nvcc - execute_process(COMMAND ${CUDAToolkit_NVCC_EXECUTABLE} "--version" OUTPUT_VARIABLE NVCC_OUT) + execute_process(COMMAND ${CUDAToolkit_NVCC_EXECUTABLE} "--version" + OUTPUT_VARIABLE NVCC_OUT + RESULT_VARIABLE _nvcc_version_result) if(NVCC_OUT MATCHES [=[ V([0-9]+)\.([0-9]+)\.([0-9]+)]=]) set(CUDAToolkit_VERSION_MAJOR "${CMAKE_MATCH_1}") set(CUDAToolkit_VERSION_MINOR "${CMAKE_MATCH_2}")
diff --git a/Modules/FindCURL.cmake b/Modules/FindCURL.cmake index 9af420f..d5ca65e 100644 --- a/Modules/FindCURL.cmake +++ b/Modules/FindCURL.cmake
@@ -257,16 +257,19 @@ execute_process(COMMAND ${CURL_CONFIG_EXECUTABLE} --version OUTPUT_VARIABLE CURL_CONFIG_VERSION_STRING ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _curl_config_version_result) execute_process(COMMAND ${CURL_CONFIG_EXECUTABLE} --feature OUTPUT_VARIABLE CURL_CONFIG_FEATURES_STRING ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _curl_config_features_result) string(REPLACE "\n" ";" CURL_SUPPORTED_FEATURES "${CURL_CONFIG_FEATURES_STRING}") execute_process(COMMAND ${CURL_CONFIG_EXECUTABLE} --protocols OUTPUT_VARIABLE CURL_CONFIG_PROTOCOLS_STRING ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _curl_config_protocols_result) string(REPLACE "\n" ";" CURL_SUPPORTED_PROTOCOLS "${CURL_CONFIG_PROTOCOLS_STRING}") endif() endif()
diff --git a/Modules/FindEnvModules.cmake b/Modules/FindEnvModules.cmake index bb19d04..40f0875 100644 --- a/Modules/FindEnvModules.cmake +++ b/Modules/FindEnvModules.cmake
@@ -229,6 +229,7 @@ execute_process( COMMAND mktemp -t module.cmake.XXXXXXXXXXXX OUTPUT_VARIABLE tempfile_name + RESULT_VARIABLE _tempfile_result ) string(STRIP "${tempfile_name}" tempfile_name)
diff --git a/Modules/FindFLTK.cmake b/Modules/FindFLTK.cmake index eed585c..9b4605f 100644 --- a/Modules/FindFLTK.cmake +++ b/Modules/FindFLTK.cmake
@@ -289,7 +289,9 @@ find_program(FLTK_CONFIG_SCRIPT fltk-config PATHS ${FLTK_BIN_DIR}) if(FLTK_CONFIG_SCRIPT) if(NOT FLTK_INCLUDE_DIR) - execute_process(COMMAND ${FLTK_CONFIG_SCRIPT} --cxxflags OUTPUT_VARIABLE FLTK_CXXFLAGS) + execute_process(COMMAND ${FLTK_CONFIG_SCRIPT} --cxxflags + OUTPUT_VARIABLE FLTK_CXXFLAGS + RESULT_VARIABLE _fltk_cxxflags_result) if(FLTK_CXXFLAGS) string(REGEX MATCHALL "-I[^ ]*" _fltk_temp_dirs ${FLTK_CXXFLAGS}) string(REPLACE "-I" "" _fltk_temp_dirs "${_fltk_temp_dirs}") @@ -313,7 +315,9 @@ # Try to find FLTK library if(UNIX) if(FLTK_CONFIG_SCRIPT) - execute_process(COMMAND ${FLTK_CONFIG_SCRIPT} --libs OUTPUT_VARIABLE _FLTK_POSSIBLE_LIBS) + execute_process(COMMAND ${FLTK_CONFIG_SCRIPT} --libs + OUTPUT_VARIABLE _FLTK_POSSIBLE_LIBS + RESULT_VARIABLE _fltk_config_libs_result) if(_FLTK_POSSIBLE_LIBS) get_filename_component(_FLTK_POSSIBLE_LIBRARY_DIR ${_FLTK_POSSIBLE_LIBS} PATH) endif() @@ -350,7 +354,8 @@ if(UNIX) if(FLTK_CONFIG_SCRIPT) execute_process(COMMAND ${FLTK_CONFIG_SCRIPT} --use-images --ldflags - OUTPUT_VARIABLE FLTK_IMAGES_LDFLAGS) + OUTPUT_VARIABLE FLTK_IMAGES_LDFLAGS + RESULT_VARIABLE _fltk_images_ldflags_result) set(FLTK_LIBS_EXTRACT_REGEX ".*-lfltk_images (.*) -lfltk.*") if("${FLTK_IMAGES_LDFLAGS}" MATCHES "${FLTK_LIBS_EXTRACT_REGEX}") string(REGEX REPLACE " +" ";" FLTK_IMAGES_LIBS "${CMAKE_MATCH_1}")
diff --git a/Modules/FindGSL.cmake b/Modules/FindGSL.cmake index 041e9d1..0d30ffb 100644 --- a/Modules/FindGSL.cmake +++ b/Modules/FindGSL.cmake
@@ -171,7 +171,8 @@ execute_process( COMMAND "${GSL_CONFIG_EXECUTABLE}" --version OUTPUT_VARIABLE GSL_VERSION - OUTPUT_STRIP_TRAILING_WHITESPACE ) + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _gsl_config_version_result) endif() # 2. If gsl-config is not available, try looking in gsl/gsl_version.h
diff --git a/Modules/FindGettext.cmake b/Modules/FindGettext.cmake index 347d30d..1330580 100644 --- a/Modules/FindGettext.cmake +++ b/Modules/FindGettext.cmake
@@ -413,7 +413,8 @@ execute_process(COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --version OUTPUT_VARIABLE gettext_version ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _gettext_msgmerge_version_result) get_filename_component(msgmerge_name ${GETTEXT_MSGMERGE_EXECUTABLE} NAME) get_filename_component(msgmerge_namewe ${GETTEXT_MSGMERGE_EXECUTABLE} NAME_WE) if(gettext_version MATCHES "^(${msgmerge_name}|${msgmerge_namewe}) \\([^\\)]*\\) ([0-9\\.]+[^ \n]*)")
diff --git a/Modules/FindGnuplot.cmake b/Modules/FindGnuplot.cmake index f5bf309..5a22735 100644 --- a/Modules/FindGnuplot.cmake +++ b/Modules/FindGnuplot.cmake
@@ -87,7 +87,8 @@ execute_process(COMMAND "${GNUPLOT_EXECUTABLE}" --version OUTPUT_VARIABLE GNUPLOT_OUTPUT_VARIABLE ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _gnuplot_version_result) string(REGEX REPLACE "^gnuplot ([0-9\\.]+)( patchlevel )?" "\\1." Gnuplot_VERSION "${GNUPLOT_OUTPUT_VARIABLE}") string(REGEX REPLACE "\\.$" "" Gnuplot_VERSION "${Gnuplot_VERSION}")
diff --git a/Modules/FindIce.cmake b/Modules/FindIce.cmake index a0be791..f672ba8 100644 --- a/Modules/FindIce.cmake +++ b/Modules/FindIce.cmake
@@ -662,7 +662,8 @@ execute_process(COMMAND ${Ice_SLICE2CPP_EXECUTABLE} --version ERROR_VARIABLE Ice_VERSION_SLICE2CPP_FULL - ERROR_STRIP_TRAILING_WHITESPACE) + ERROR_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _slice2cpp_version_result) # restore the previous LC_ALL set(ENV{LC_ALL} ${_Ice_SAVED_LC_ALL})
diff --git a/Modules/FindIcotool.cmake b/Modules/FindIcotool.cmake index ea9cb04..b4eeb7e 100644 --- a/Modules/FindIcotool.cmake +++ b/Modules/FindIcotool.cmake
@@ -81,6 +81,7 @@ OUTPUT_VARIABLE Icotool_VERSION ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _icotool_version_result ) if("${Icotool_VERSION}" MATCHES "^icotool \\([^\\)]*\\) ([0-9\\.]+[^ \n]*)") set(Icotool_VERSION "${CMAKE_MATCH_1}")
diff --git a/Modules/FindImageMagick.cmake b/Modules/FindImageMagick.cmake index c34ebdb..d1b482c 100644 --- a/Modules/FindImageMagick.cmake +++ b/Modules/FindImageMagick.cmake
@@ -285,6 +285,7 @@ OUTPUT_VARIABLE version ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _version_result ) if(version MATCHES "^Version: ImageMagick ([-0-9.]+)")
diff --git a/Modules/FindMatlab.cmake b/Modules/FindMatlab.cmake index 5e3b365..5f7c83b 100644 --- a/Modules/FindMatlab.cmake +++ b/Modules/FindMatlab.cmake
@@ -1083,6 +1083,7 @@ OUTPUT_VARIABLE _matlab_mex_extension ERROR_VARIABLE _matlab_mex_extension_error OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _matlab_mex_extension_result ${devnull}) if(_matlab_mex_extension_error)
diff --git a/Modules/FindODBC.cmake b/Modules/FindODBC.cmake index 69c6ddb..a668072 100644 --- a/Modules/FindODBC.cmake +++ b/Modules/FindODBC.cmake
@@ -163,9 +163,11 @@ if (UNIX AND ODBC_CONFIG) # unixODBC and iODBC accept unified command line options execute_process(COMMAND ${ODBC_CONFIG} --cflags - OUTPUT_VARIABLE _cflags OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_VARIABLE _cflags OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _odbc_config_cflags_result) execute_process(COMMAND ${ODBC_CONFIG} --libs - OUTPUT_VARIABLE _libs OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_VARIABLE _libs OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _odbc_config_libs_result) # Collect paths of include directories from CFLAGS separate_arguments(_cflags NATIVE_COMMAND "${_cflags}")
diff --git a/Modules/FindOpenMP.cmake b/Modules/FindOpenMP.cmake index 6ef1152..55f2de7 100644 --- a/Modules/FindOpenMP.cmake +++ b/Modules/FindOpenMP.cmake
@@ -365,7 +365,8 @@ COMMAND ${CMAKE_${LANG}_COMPILER} -print-search-dirs OUTPUT_VARIABLE output_lines COMMAND_ERROR_IS_FATAL ANY - ERROR_QUIET) + ERROR_QUIET + RESULT_VARIABLE _result_lcc_output) if("${output_lines}" MATCHES ".*\nlibraries:[ \t]+(.*:)\n.*") string(REPLACE ":" ";" implicit_dirs_addon "${CMAKE_MATCH_1}") list(PREPEND OpenMP_${LANG}_IMPLICIT_LINK_DIRS ${implicit_dirs_addon})
diff --git a/Modules/FindProtobuf.cmake b/Modules/FindProtobuf.cmake index 62baba1..cec56ac 100644 --- a/Modules/FindProtobuf.cmake +++ b/Modules/FindProtobuf.cmake
@@ -992,7 +992,8 @@ if(Protobuf_PROTOC_EXECUTABLE) # Check Protobuf compiler version to be aligned with libraries version execute_process(COMMAND ${Protobuf_PROTOC_EXECUTABLE} --version - OUTPUT_VARIABLE _PROTOBUF_PROTOC_EXECUTABLE_VERSION) + OUTPUT_VARIABLE _PROTOBUF_PROTOC_EXECUTABLE_VERSION + RESULT_VARIABLE _PROTOBUF_PROTOC_EXECUTABLE_VERSION_RESULT) if("${_PROTOBUF_PROTOC_EXECUTABLE_VERSION}" MATCHES "libprotoc ([0-9.]+)") set(_PROTOBUF_PROTOC_EXECUTABLE_VERSION "${CMAKE_MATCH_1}")
diff --git a/Modules/FindPythonLibs.cmake b/Modules/FindPythonLibs.cmake index 272b176..f8e9705 100644 --- a/Modules/FindPythonLibs.cmake +++ b/Modules/FindPythonLibs.cmake
@@ -483,7 +483,10 @@ file(APPEND ${_filenameTmp} "#ifndef EXCLUDE_LOAD_ALL_FUNCTION\nvoid CMakeLoadAllPythonModules(void)\n{\n ${_name}_LoadAllPythonModules();\n}\n#endif\n\n#endif\n") # with configure_file() cmake complains that you may not use a file created using file(WRITE) as input file for configure_file() - execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${_filenameTmp}" "${_filename}" OUTPUT_QUIET ERROR_QUIET) + execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different + "${_filenameTmp}" "${_filename}" + OUTPUT_QUIET ERROR_QUIET + RESULT_VARIABLE _result_copy) endfunction()
diff --git a/Modules/FindSquish.cmake b/Modules/FindSquish.cmake index f405e45..9622499 100644 --- a/Modules/FindSquish.cmake +++ b/Modules/FindSquish.cmake
@@ -299,7 +299,8 @@ set(SQUISH_CLIENT_EXECUTABLE_FOUND 1) execute_process(COMMAND "${SQUISH_CLIENT_EXECUTABLE}" --version OUTPUT_VARIABLE _squishVersionOutput - ERROR_QUIET ) + ERROR_QUIET + RESULT_VARIABLE _squishVersionResult) if("${_squishVersionOutput}" MATCHES "([0-9]+)\\.([0-9]+)\\.([0-9]+)") set(SQUISH_VERSION_MAJOR "${CMAKE_MATCH_1}") set(SQUISH_VERSION_MINOR "${CMAKE_MATCH_2}")
diff --git a/Modules/FindTclsh.cmake b/Modules/FindTclsh.cmake index 81a2cbf..f57b8b2 100644 --- a/Modules/FindTclsh.cmake +++ b/Modules/FindTclsh.cmake
@@ -139,7 +139,8 @@ COMMAND "${TCL_TCLSH}" OUTPUT_VARIABLE Tclsh_VERSION ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _tclsh_version_result) set(TCLSH_VERSION_STRING "${Tclsh_VERSION}") endif()
diff --git a/Modules/FindXCTest.cmake b/Modules/FindXCTest.cmake index 7b4cc41..4ffcf8a 100644 --- a/Modules/FindXCTest.cmake +++ b/Modules/FindXCTest.cmake
@@ -150,7 +150,8 @@ execute_process( COMMAND xcrun --find xctest OUTPUT_VARIABLE _xcrun_out OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_VARIABLE _xcrun_err) + ERROR_VARIABLE _xcrun_err + RESULT_VARIABLE _xcrun_result) if(_xcrun_out) set(XCTest_EXECUTABLE "${_xcrun_out}" CACHE FILEPATH "XCTest executable") mark_as_advanced(XCTest_EXECUTABLE)
diff --git a/Modules/FindwxWindows.cmake b/Modules/FindwxWindows.cmake index 90cb0b7..f869cce 100644 --- a/Modules/FindwxWindows.cmake +++ b/Modules/FindwxWindows.cmake
@@ -708,7 +708,8 @@ # rpath: execute_process(COMMAND ${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE} ${WX_CONFIG_ARGS_LIBS} - OUTPUT_VARIABLE WX_CONFIG_LIBS ) + OUTPUT_VARIABLE WX_CONFIG_LIBS + RESULT_VARIABLE _wx_config_libs_result) ## extract linkdirs (-L) for rpath ## use regular expression to match wildcard equivalent "-L*<endchar>"
diff --git a/Modules/Internal/CMakeCUDAFindToolkit.cmake b/Modules/Internal/CMakeCUDAFindToolkit.cmake index 8fd4089..ff67ef0 100644 --- a/Modules/Internal/CMakeCUDAFindToolkit.cmake +++ b/Modules/Internal/CMakeCUDAFindToolkit.cmake
@@ -110,7 +110,8 @@ # each of which has a different layout, we need to extract the CUDA toolkit root from the compiler # itself, allowing us to support numerous different scattered toolkit layouts execute_process(COMMAND ${_CUDA_NVCC_EXECUTABLE} "-v" "__cmake_determine_cuda" - OUTPUT_VARIABLE _CUDA_NVCC_OUT ERROR_VARIABLE _CUDA_NVCC_OUT) + OUTPUT_VARIABLE _CUDA_NVCC_OUT ERROR_VARIABLE _CUDA_NVCC_OUT + RESULT_VARIABLE _result_nvcc_out) if(_CUDA_NVCC_OUT MATCHES "\\#\\$ TOP=([^\r\n]*)") get_filename_component(${lang_var_}TOOLKIT_ROOT "${CMAKE_MATCH_1}" ABSOLUTE) else() @@ -161,7 +162,9 @@ # For regular nvcc we the toolkit version is the same as the compiler version and we can parse it from the vendor test output. # For Clang we need to invoke nvcc to get version output. if(CMAKE_${lang}_COMPILER_ID STREQUAL "Clang") - execute_process(COMMAND ${_CUDA_NVCC_EXECUTABLE} "--version" OUTPUT_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT) + execute_process(COMMAND ${_CUDA_NVCC_EXECUTABLE} "--version" + OUTPUT_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT + RESULT_VARIABLE _result_nvcc_version) endif() if(CMAKE_${lang}_COMPILER_ID_OUTPUT MATCHES [=[V([0-9]+\.[0-9]+\.[0-9]+)]=])
diff --git a/Modules/Internal/CMakeChipStarHIP.cmake b/Modules/Internal/CMakeChipStarHIP.cmake index 1249220..4e03b76 100644 --- a/Modules/Internal/CMakeChipStarHIP.cmake +++ b/Modules/Internal/CMakeChipStarHIP.cmake
@@ -42,7 +42,8 @@ set(_hip_path "$ENV{HIP_PATH}") if(NOT IS_DIRECTORY "${_hip_path}") execute_process(COMMAND hipconfig --rocmpath - OUTPUT_VARIABLE _hip_path OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_VARIABLE _hip_path OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _result_hipconfig) endif() if(IS_DIRECTORY "${_hip_path}") file(TO_CMAKE_PATH "${_hip_path}" _hip_path)
diff --git a/Modules/Internal/CPack/CPackDeb.cmake b/Modules/Internal/CPack/CPackDeb.cmake index 1ebcaaa..c4d7155 100644 --- a/Modules/Internal/CPack/CPackDeb.cmake +++ b/Modules/Internal/CPack/CPackDeb.cmake
@@ -382,6 +382,7 @@ OUTPUT_VARIABLE _TMP_VERSION ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _result_shlibdeps_version ) if(_TMP_VERSION MATCHES "dpkg-shlibdeps version ([0-9]+\\.[0-9]+\\.[0-9]+)") set(SHLIBDEPS_EXECUTABLE_VERSION "${CMAKE_MATCH_1}") @@ -413,6 +414,7 @@ OUTPUT_VARIABLE _TMP_HELP ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _result_shlibdeps_help ) if(_TMP_HELP MATCHES "--ignore-missing-info") set(IGNORE_MISSING_INFO_FLAG "--ignore-missing-info") @@ -621,6 +623,7 @@ COMMAND "${DPKG_EXECUTABLE}" --print-architecture OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _result_dpkg_arch ) endif() @@ -878,6 +881,7 @@ COMMAND "${DPKG_EXECUTABLE}" --version OUTPUT_VARIABLE DPKG_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _result_dpkg_version ) set(_dpkg_version_re "Debian 'dpkg' package management program version ([0-9]+\.[0-9]+\.[0-9]+).*") if(DPKG_VERSION MATCHES "${_dpkg_version_re}")
diff --git a/Modules/Internal/CPack/CPackRPM.cmake b/Modules/Internal/CPack/CPackRPM.cmake index 75b3b40..8466550 100644 --- a/Modules/Internal/CPack/CPackRPM.cmake +++ b/Modules/Internal/CPack/CPackRPM.cmake
@@ -67,6 +67,7 @@ OUTPUT_VARIABLE permissions_str ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _result_stat_permissions ) string(REGEX REPLACE "(.)" "\\1;" permissions "${permissions_str}") @@ -581,7 +582,9 @@ BASE_DIRECTORY "${SYMLINK_LOCATION_}" OUTPUT_VARIABLE FINAL_PATH_ ) - execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink "${FINAL_PATH_}" "${WDIR}/${F}") + execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink + "${FINAL_PATH_}" "${WDIR}/${F}" + RESULT_VARIABLE _result_symlink_creation) else() # relocation subpaths cpack_rpm_symlink_add_for_relocation_script("${PACKAGE_PREFIXES}" "${F}" "${SYMLINK_RELOCATIONS}" @@ -598,7 +601,9 @@ "${SYMLINK_POINT_WD_}" "${POINT_RELOCATIONS}") else() # is not relocatable or points to non relocatable path - permanent symlink - execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink "${SYMLINK_POINT_WD_}" "${WDIR}/${F}") + execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink + "${SYMLINK_POINT_WD_}" "${WDIR}/${F}" + RESULT_VARIABLE _result_symlink_creation) endif() endif() elseif(IS_DIRECTORY "${WDIR}/${F}") @@ -840,7 +845,8 @@ execute_process(COMMAND ${RPMBUILD_EXECUTABLE} --version OUTPUT_VARIABLE _TMP_VERSION ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _TMP_VERSION_RESULT) string(REGEX REPLACE "^.* " "" RPMBUILD_EXECUTABLE_VERSION ${_TMP_VERSION}) @@ -857,7 +863,8 @@ execute_process(COMMAND ${LSB_RELEASE_EXECUTABLE} -a OUTPUT_VARIABLE _TMP_LSB_RELEASE_OUTPUT ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _TMP_LSB_RELEASE_RESULT) string(REGEX REPLACE "\n" ", " LSB_RELEASE_OUTPUT ${_TMP_LSB_RELEASE_OUTPUT}) @@ -953,7 +960,8 @@ if(NOT CPACK_RPM_PACKAGE_ARCHITECTURE) execute_process(COMMAND uname "-m" OUTPUT_VARIABLE CPACK_RPM_PACKAGE_ARCHITECTURE - OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _TMP_UNAME_RESULT) else() if(CPACK_RPM_PACKAGE_DEBUG) message("CPackRPM:Debug: using user-specified build arch = ${CPACK_RPM_PACKAGE_ARCHITECTURE}") @@ -1113,7 +1121,8 @@ execute_process( COMMAND "${RPM_EXECUTABLE}" --querytags OUTPUT_VARIABLE RPMBUILD_TAG_LIST - OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _result_rpm) endif() string(REPLACE "\n" ";" RPMBUILD_TAG_LIST "${RPMBUILD_TAG_LIST}") @@ -1668,6 +1677,7 @@ execute_process( COMMAND ${CMAKE_COMMAND} -E tar "cfvz" "${CPACK_RPM_DIRECTORY}/SOURCES/${archive_name_}.tar.gz" "${CPACK_PACKAGE_FILE_NAME}" WORKING_DIRECTORY ${CPACK_RPM_DIRECTORY} + RESULT_VARIABLE _result_tar ) set(TMP_RPM_SOURCE "Source: ${archive_name_}.tar.gz")
diff --git a/Modules/SquishTestScript.cmake b/Modules/SquishTestScript.cmake index 9575084..d74b03e 100644 --- a/Modules/SquishTestScript.cmake +++ b/Modules/SquishTestScript.cmake
@@ -45,7 +45,7 @@ if(squish_pre_command) message(STATUS "Executing pre command: ${squish_pre_command}") - execute_process(COMMAND "${squish_pre_command}") + execute_process(COMMAND "${squish_pre_command}" RESULT_VARIABLE _result_pre_command) endif() # run the test @@ -71,7 +71,7 @@ if(squish_post_command) message(STATUS "Executing post command: ${squish_post_command}") - execute_process(COMMAND "${squish_post_command}") + execute_process(COMMAND "${squish_post_command}" RESULT_VARIABLE _result_post_command) endif() # check for an error with running the test
diff --git a/Modules/UseJava/Symlinks.cmake b/Modules/UseJava/Symlinks.cmake index 3142dca..6281067 100644 --- a/Modules/UseJava/Symlinks.cmake +++ b/Modules/UseJava/Symlinks.cmake
@@ -13,6 +13,7 @@ execute_process( COMMAND ${LN_EXECUTABLE} -sf "${_JAVA_TARGET_OUTPUT_NAME}" "${_JAVA_TARGET_OUTPUT_LINK}" WORKING_DIRECTORY ${_JAVA_TARGET_DIR} + RESULT_VARIABLE _result_symlink_creation ) else () message(SEND_ERROR "FATAL: Can't find _JAVA_TARGET_OUTPUT_NAME")
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 210363e..0520a5f 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt
@@ -1218,7 +1218,8 @@ execute_process(COMMAND ${CMAKE_COMMAND} -E env LC_ALL=C ${SHLIBDEPS_EXECUTABLE} --version OUTPUT_VARIABLE _TMP_VERSION ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _result_dpkg_version) if(_TMP_VERSION MATCHES "dpkg-shlibdeps version ([0-9]+\\.[0-9]+\\.[0-9]+)") set(SHLIBDEPS_EXECUTABLE_VERSION "${CMAKE_MATCH_1}") else() @@ -1963,6 +1964,7 @@ COMMAND sw_vers -productVersion OUTPUT_VARIABLE OSX_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _sw_vers_result ) if(OSX_VERSION MATCHES "^([0-9]+\\.[0-9]+)") set(CMake_TEST_XCTest_DEPLOYMENT_TARGET "${CMAKE_MATCH_1}")
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 8bf0af3..bd18d11 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt
@@ -1355,7 +1355,9 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "e2k" AND NOT DEFINED CMake_TEST_E2K_BROKEN_LIBC) # Exclude tests that fail due to a broken libc version on Elbrus. find_program(DPKG_QUERY "dpkg-query" ) - execute_process(COMMAND "${DPKG_QUERY}" "-f" "\${Version}" "-W" "glibc" OUTPUT_VARIABLE LIBC_VERSION) + execute_process(COMMAND "${DPKG_QUERY}" "-f" "\${Version}" "-W" "glibc" + OUTPUT_VARIABLE LIBC_VERSION + RESULT_VARIABLE _result_libc) if(LIBC_VERSION MATCHES "2.29-25.*") list(REMOVE_ITEM cpack_tests DEB.DEFAULT_PERMISSIONS