summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorLeander Beernaert <leander.beernaert@qt.io>2020-01-31 14:44:52 +0100
committerLeander Beernaert <leander.beernaert@qt.io>2020-02-03 08:07:03 +0000
commit465949420a877099247d94dd4db54d19ca5a9a7c (patch)
tree3c108ee74ace2abd74c456b75ea54ef59176e11d /cmake
parent4954adea39cb9e02be36c9b786016ac2802fcbb9 (diff)
Update add_custom_command and add_custom_target dependencies
If we don't add the executable used by the custom_target and/or custom_command to list of the command's/target's dependencies (DEPENDS) the generated file will not update should the executable change. Change-Id: Idce30f3dd4f756d9e8f6848c5e16f5dd6c7c8f0a Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/3rdparty/extra-cmake-modules/find-modules/FindWaylandScanner.cmake12
-rw-r--r--cmake/QtBuild.cmake8
-rw-r--r--cmake/QtResource.cmake.in21
3 files changed, 30 insertions, 11 deletions
diff --git a/cmake/3rdparty/extra-cmake-modules/find-modules/FindWaylandScanner.cmake b/cmake/3rdparty/extra-cmake-modules/find-modules/FindWaylandScanner.cmake
index ed9c4c4c9a..13291afcda 100644
--- a/cmake/3rdparty/extra-cmake-modules/find-modules/FindWaylandScanner.cmake
+++ b/cmake/3rdparty/extra-cmake-modules/find-modules/FindWaylandScanner.cmake
@@ -129,11 +129,15 @@ function(ecm_add_wayland_client_protocol out_var)
add_custom_command(OUTPUT "${_client_header}"
COMMAND ${WaylandScanner_EXECUTABLE} client-header ${_infile} ${_client_header}
- DEPENDS ${_infile} VERBATIM)
+ DEPENDS ${WaylandScanner_EXECUTABLE} ${_infile}
+ VERBATIM
+ )
add_custom_command(OUTPUT "${_code}"
COMMAND ${WaylandScanner_EXECUTABLE} code ${_infile} ${_code}
- DEPENDS ${_infile} ${_client_header} VERBATIM)
+ DEPENDS ${WaylandScanner_EXECUTABLE} ${_infile} ${_client_header}
+ VERBATIM
+ )
list(APPEND ${out_var} "${_client_header}" "${_code}")
set(${out_var} ${${out_var}} PARENT_SCOPE)
@@ -160,7 +164,9 @@ function(ecm_add_wayland_server_protocol out_var)
add_custom_command(OUTPUT "${_server_header}"
COMMAND ${WaylandScanner_EXECUTABLE} server-header ${_infile} ${_server_header}
- DEPENDS ${_infile} VERBATIM)
+ DEPENDS ${WaylandScanner_EXECUTABLE} ${_infile}
+ VERBATIM
+ )
list(APPEND ${out_var} "${_server_header}")
set(${out_var} ${${out_var}} PARENT_SCOPE)
diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake
index 22cfcaa510..39e3f6fb27 100644
--- a/cmake/QtBuild.cmake
+++ b/cmake/QtBuild.cmake
@@ -3398,7 +3398,7 @@ function(qt_create_qdbusxml2cpp_command target infile)
add_custom_command(OUTPUT "${header_file}" "${source_file}"
COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::qdbusxml2cpp ${arg_FLAGS} "${option}"
"${header_file}:${source_file}" "${absolute_in_file_path}"
- DEPENDS "${absolute_in_file_path}"
+ DEPENDS "${absolute_in_file_path}" ${QT_CMAKE_EXPORT_NAMESPACE}::qdbusxml2cpp
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
VERBATIM)
@@ -3486,6 +3486,7 @@ function(qt_add_docs)
# qtattributionsscanner
add_custom_target(qattributionsscanner_${target}
+ DEPENDS ${qattributionsscanner_bin}
COMMAND ${qtattributionsscanner_bin}
${PROJECT_SOURCE_DIR}
--filter "QDocModule=${qdoc_target}"
@@ -3518,6 +3519,7 @@ function(qt_add_docs)
)
add_custom_target(prepare_docs_${target}
+ DEPENDS ${qdoc_bin}
COMMAND ${CMAKE_COMMAND} -E env ${qdoc_env_args}
${qdoc_bin}
${prepare_qdoc_args}
@@ -3536,6 +3538,7 @@ function(qt_add_docs)
)
add_custom_target(generate_docs_${target}
+ DEPENDS ${qdoc_bin}
COMMAND ${CMAKE_COMMAND} -E env ${qdoc_env_args}
${qdoc_bin}
${generate_qdocs_args}
@@ -3553,6 +3556,7 @@ function(qt_add_docs)
)
add_custom_target(html_docs_${target}
+ DEPENDS ${qdoc_bin}
COMMAND ${CMAKE_COMMAND} -E env ${qdoc_env_args}
${qdoc_bin}
${html_qdocs_args}
@@ -3565,6 +3569,7 @@ function(qt_add_docs)
set(qch_file_path ${qdoc_output_dir}/${qch_file_name})
add_custom_target(qch_docs_${target}
+ DEPENDS ${qhelpgenerator_bin}
COMMAND ${qhelpgenerator_bin}
"${qdoc_output_dir}/${doc_target}.qhp"
-o "${qch_file_path}"
@@ -3885,6 +3890,7 @@ function(qt_process_qlalr consuming_target input_file_list flags)
add_custom_command(
OUTPUT ${cpp_file} ${private_file} ${decl_file} ${impl_file}
COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::qlalr ${flags} ${input_file}
+ DEPENDS ${QT_CMAKE_EXPORT_NAMESPACE}::qlalr
MAIN_DEPENDENCY ${input_file}
)
target_sources(${consuming_target} PRIVATE ${cpp_file} ${impl_file})
diff --git a/cmake/QtResource.cmake.in b/cmake/QtResource.cmake.in
index 2f8f77eb79..84a275bc67 100644
--- a/cmake/QtResource.cmake.in
+++ b/cmake/QtResource.cmake.in
@@ -102,13 +102,15 @@ function(__qt_quick_compiler_process_resources target resource_name)
endif()
add_custom_command(
OUTPUT ${compiled_file}
- DEPENDS ${file_absolute}
${QT_TOOL_PATH_SETUP_COMMAND}
COMMAND
@QT_CMAKE_EXPORT_NAMESPACE@::qmlcachegen
- --resource-path ${file_resource_path}
- -o ${compiled_file}
- ${file_absolute}
+ --resource-path "${file_resource_path}"
+ -o "${compiled_file}"
+ "${file_absolute}"
+ DEPENDS
+ $<TARGET_FILE:@QT_CMAKE_EXPORT_NAMESPACE@::qmlcachegen>
+ "${file_absolute}"
)
target_sources(${target} PRIVATE ${compiled_file})
endforeach()
@@ -136,14 +138,16 @@ function(__qt_quick_compiler_process_resources target resource_name)
add_custom_command(
OUTPUT ${qmlcache_loader_file}
- DEPENDS ${qmlcache_loader_list}
${QT_TOOL_PATH_SETUP_COMMAND}
COMMAND
@QT_CMAKE_EXPORT_NAMESPACE@::qmlcachegen
${retained_args}
--resource-name "${resource_name_arg}"
- -o ${qmlcache_loader_file}
+ -o "${qmlcache_loader_file}"
"@${qmlcache_loader_list}"
+ DEPENDS
+ $<TARGET_FILE:@QT_CMAKE_EXPORT_NAMESPACE@::qmlcachegen>
+ "${qmlcache_loader_list}"
)
__qt_propagate_generated_resource(${target}
@@ -293,7 +297,10 @@ function(QT@PROJECT_VERSION_MAJOR@_PROCESS_RESOURCE target resourceName)
add_custom_command(OUTPUT "${generatedSourceCode}"
COMMAND "@QT_CMAKE_EXPORT_NAMESPACE@::rcc"
ARGS ${rccArgs}
- DEPENDS ${resource_dependencies} ${generatedResourceFile}
+ DEPENDS
+ ${resource_dependencies}
+ ${generatedResourceFile}
+ "@QT_CMAKE_EXPORT_NAMESPACE@::rcc"
COMMENT "RCC ${newResourceName}"
VERBATIM)