diff options
author | Alexey Edelev <alexey.edelev@qt.io> | 2022-07-07 11:52:00 +0200 |
---|---|---|
committer | Alexey Edelev <alexey.edelev@qt.io> | 2022-08-09 15:21:52 +0200 |
commit | c2c4a21374c38465bf0d2dfd3e271ef831c17d2e (patch) | |
tree | ddd34f5485e4fc35f6844d4ef57a5c262633dc71 | |
parent | 9ce5709fb1b4e5d563ea1d90a6cf1fc6e365d3d9 (diff) |
Add the common headersclean_check target
Add headersclean_check that allows to run all module-specific
'_headersclean_check' targets in single command. Also add
dependency on input header files for the headers clean custom
commands.
Also adjust the '_headersclean_check' target names to match
the naming of module targets - the 'Qt' prefix is removed.
Change-Id: I17c3442c3c51ce99cd9b38c85d606e9ababbb013
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
-rw-r--r-- | cmake/QtHeadersClean.cmake | 23 | ||||
-rw-r--r-- | cmake/QtModuleHelpers.cmake | 2 |
2 files changed, 17 insertions, 8 deletions
diff --git a/cmake/QtHeadersClean.cmake b/cmake/QtHeadersClean.cmake index 3f5dc7525d..f73c7e409c 100644 --- a/cmake/QtHeadersClean.cmake +++ b/cmake/QtHeadersClean.cmake @@ -1,10 +1,10 @@ # Copyright (C) 2022 The Qt Company Ltd. # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 -# Add a custom ${module_include_name}_header_check target that builds each header in +# Add a custom ${module_target}_headersclean_check target that builds each header in # ${module_headers} with a custom set of defines. This makes sure our public headers # are self-contained, and also compile with more strict compiler options. -function(qt_internal_add_headers_clean_target +function(qt_internal_add_headersclean_target module_target module_include_name module_headers) @@ -188,7 +188,9 @@ function(qt_internal_add_headers_clean_target -o${artifact_path} IMPLICIT_DEPENDS CXX VERBATIM - COMMAND_EXPAND_LISTS) + COMMAND_EXPAND_LISTS + DEPENDS "${input_path}" + ) list(APPEND hclean_artifacts "${artifact_path}") endforeach() @@ -221,17 +223,24 @@ function(qt_internal_add_headers_clean_target -Fo${artifact_path} "${source_path}" IMPLICIT_DEPENDS CXX VERBATIM - COMMAND_EXPAND_LISTS) + COMMAND_EXPAND_LISTS + DEPENDS "${input_path}" + ) list(APPEND hclean_artifacts "${artifact_path}") endforeach() else() - message(ERROR "CMAKE_CXX_COMPILER_ID \"${CMAKE_CXX_COMPILER_ID}\" is not supported for the headersclean check.") + message(FATAL_ERROR "CMAKE_CXX_COMPILER_ID \"${CMAKE_CXX_COMPILER_ID}\" is not supported" + " for the headersclean check.") endif() - add_custom_target(${module_include_name}_header_check + add_custom_target(${module_target}_headersclean_check COMMENT "headersclean: Checking headers in ${module_include_name}" DEPENDS ${hclean_artifacts} VERBATIM) - add_dependencies(${module_target} ${module_include_name}_header_check) + if(NOT TARGET headersclean_check) + add_custom_target(headersclean_check ALL) + endif() + + add_dependencies(headersclean_check ${module_target}_headersclean_check) endfunction() diff --git a/cmake/QtModuleHelpers.cmake b/cmake/QtModuleHelpers.cmake index 7c418dfb71..de36e53ad8 100644 --- a/cmake/QtModuleHelpers.cmake +++ b/cmake/QtModuleHelpers.cmake @@ -819,7 +819,7 @@ set(QT_LIBINFIX \"${QT_LIBINFIX}\")") endif() if(QT_FEATURE_headersclean AND NOT arg_NO_MODULE_HEADERS) - qt_internal_add_headers_clean_target( + qt_internal_add_headersclean_target( ${target} "${module_include_name}" "${module_headers_clean}") |