From c2c4a21374c38465bf0d2dfd3e271ef831c17d2e Mon Sep 17 00:00:00 2001 From: Alexey Edelev Date: Thu, 7 Jul 2022 11:52:00 +0200 Subject: [PATCH] Add the common headersclean_check target MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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ø --- cmake/QtHeadersClean.cmake | 23 ++++++++++++++++------- cmake/QtModuleHelpers.cmake | 2 +- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/cmake/QtHeadersClean.cmake b/cmake/QtHeadersClean.cmake index 3f5dc7525d8..f73c7e409c0 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 7c418dfb714..de36e53ad85 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}")