summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Edelev <alexey.edelev@qt.io>2022-07-07 11:52:00 +0200
committerAlexey Edelev <alexey.edelev@qt.io>2022-08-09 15:21:52 +0200
commitc2c4a21374c38465bf0d2dfd3e271ef831c17d2e (patch)
treeddd34f5485e4fc35f6844d4ef57a5c262633dc71
parent9ce5709fb1b4e5d563ea1d90a6cf1fc6e365d3d9 (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.cmake23
-rw-r--r--cmake/QtModuleHelpers.cmake2
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}")