CMake build: Make errors of execute_process fail the build

Instead of silenty failing and resulting in broken builds/packages.

The property is only available since CMake 3.19, so limit the feature to
that.

Change-Id: I82b06e78540e81a809f7fdfe130648becfc9672e
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Tim Jenssen
2022-11-16 11:59:52 +01:00
committed by Eike Ziller
parent e24ad7ac55
commit 98a40b3690
7 changed files with 23 additions and 11 deletions

View File

@@ -64,6 +64,7 @@ function(create_python_xy PythonExe PythonZipFilePath)
set(ENV{PYTHONOPTIMIZE} "2")
execute_process(
COMMAND "${PythonExe}" -OO -m compileall "${CMAKE_CURRENT_BINARY_DIR}/python-lib" -b
${QTC_COMMAND_ERROR_IS_FATAL}
)
file(GLOB_RECURSE python_lib_files "${CMAKE_CURRENT_BINARY_DIR}/python-lib/*.py")
@@ -75,5 +76,6 @@ function(create_python_xy PythonExe PythonZipFilePath)
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar cf "${PythonZipFilePath}" . --format=zip
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/python-lib/"
${QTC_COMMAND_ERROR_IS_FATAL}
)
endfunction()

View File

@@ -778,14 +778,14 @@ function(add_qtc_executable name)
set(_code "${_code}
execute_process(COMMAND \"${CMAKE_INSTALL_NAME_TOOL}\"
-delete_rpath \"${_rpath}\"
\"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_EXECUTABLE_FILE_PATH}\")"
\"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_EXECUTABLE_FILE_PATH}\" ${QTC_COMMAND_ERROR_IS_FATAL})"
)
endforeach()
foreach(_rpath ${install_rpath})
set(_code "${_code}
execute_process(COMMAND \"${CMAKE_INSTALL_NAME_TOOL}\"
-add_rpath \"${_rpath}\"
\"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_EXECUTABLE_FILE_PATH}\")"
\"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_EXECUTABLE_FILE_PATH}\" ${QTC_COMMAND_ERROR_IS_FATAL})"
)
endforeach()
install(CODE "${_code}")

View File

@@ -1,3 +1,7 @@
if (CMAKE_VERSION GREATER_EQUAL 3.19)
set(QTC_COMMAND_ERROR_IS_FATAL COMMAND_ERROR_IS_FATAL ANY)
endif()
if (CMAKE_VERSION VERSION_LESS 3.18)
if (CMAKE_CXX_COMPILER_ID STREQUAL GNU)
set(BUILD_WITH_PCH OFF CACHE BOOL "" FORCE)

View File

@@ -22,7 +22,8 @@ function(qt5_query_qmake)
TIMEOUT 10
RESULT_VARIABLE _qmake_result
OUTPUT_VARIABLE _qmake_stdout
OUTPUT_STRIP_TRAILING_WHITESPACE)
OUTPUT_STRIP_TRAILING_WHITESPACE
${QTC_COMMAND_ERROR_IS_FATAL})
if (NOT "${_qmake_result}" STREQUAL "0")
message(FATAL_ERROR "Qmake did not execute successfully: ${_qmake_result}.")

View File

@@ -47,6 +47,7 @@ function(setup_dependencies_component)
\"\${_ide_app_target}\"
\"${_qmake_binary}\"
COMMAND_ECHO STDOUT
\${QTC_COMMAND_ERROR_IS_FATAL}
)
"
COMPONENT Dependencies

View File

@@ -86,10 +86,10 @@ function(get_and_add_as_subdirectory name repository git_tag build_dir source_di
)
execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" "${build_dir}/${name}"
WORKING_DIRECTORY "${build_dir}/${name}"
COMMAND_ERROR_IS_FATAL ANY
${QTC_COMMAND_ERROR_IS_FATAL}
)
execute_process(COMMAND "${CMAKE_COMMAND}" --build "${build_dir}/${name}"
COMMAND_ERROR_IS_FATAL ANY
${QTC_COMMAND_ERROR_IS_FATAL}
)
add_subdirectory(${source_dir}/${name}/${source_subdir} ${name})
endfunction()

View File

@@ -43,7 +43,7 @@ function(download_jdk)
message("Downloading: ${jdk_url}")
file(DOWNLOAD ${jdk_url} ./jdk.zip SHOW_PROGRESS)
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf ./jdk.zip)
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf ./jdk.zip COMMAND_ERROR_IS_FATAL ANY)
endfunction()
function(download_android_commandline)
@@ -61,7 +61,7 @@ function(download_android_commandline)
file(DOWNLOAD ${android_cmdtools_url} ./android_commandline_tools.zip SHOW_PROGRESS)
file(MAKE_DIRECTORY android-sdk)
file(MAKE_DIRECTORY android-cmdlinetools)
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf ../android_commandline_tools.zip WORKING_DIRECTORY android-cmdlinetools)
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf ../android_commandline_tools.zip WORKING_DIRECTORY android-cmdlinetools COMMAND_ERROR_IS_FATAL ANY)
endfunction()
function(setup_android)
@@ -78,9 +78,11 @@ function(setup_android)
file(WRITE ${CMAKE_CURRENT_LIST_DIR}/accept_license.txt "y\ny\ny\ny\ny\ny\ny\ny\ny\ny\n")
execute_process(
INPUT_FILE ${CMAKE_CURRENT_LIST_DIR}/accept_license.txt
COMMAND ${sdkmanager} --licenses --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk)
COMMAND ${sdkmanager} --licenses --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk
COMMAND_ERROR_IS_FATAL ANY)
execute_process(
COMMAND ${sdkmanager} --update --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk)
COMMAND ${sdkmanager} --update --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk
COMMAND_ERROR_IS_FATAL ANY)
execute_process(
COMMAND ${sdkmanager}
"platforms;${ANDROID_PLATFORM}"
@@ -90,13 +92,15 @@ function(setup_android)
"cmdline-tools;latest"
"tools"
"emulator"
"ndk-bundle" --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk)
"ndk-bundle" --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk
COMMAND_ERROR_IS_FATAL ANY)
if (WIN32)
execute_process(
COMMAND ${sdkmanager}
"extras;google;usb_driver"
--sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk)
--sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk
COMMAND_ERROR_IS_FATAL ANY)
endif()
endfunction()