From e875f458055d6a7b54d2d853590ccc2495ab145b Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 15 May 2020 12:47:09 +0200 Subject: [PATCH] CMake: Don't create *Depends header for header-only modules Set the target property INTERFACE_MODULE_IS_HEADER_ONLY for header-only modules, and only create *Depends header files if this property is falsy. Change-Id: Ic6b100787d18b3ff1f7b9d0f2b5c744018b1f295 Reviewed-by: Alexandru Croitor --- cmake/QtBuild.cmake | 9 +++++++-- cmake/QtPostProcess.cmake | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index f1634e54f68..a2fcdaed378 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -1923,6 +1923,7 @@ function(qt_add_module target) if(${arg_HEADER_MODULE}) add_library("${target}" INTERFACE) set(is_interface_lib 1) + set_target_properties(${target} PROPERTIES INTERFACE_MODULE_IS_HEADER_ONLY TRUE) elseif(${arg_STATIC}) add_library("${target}" STATIC) elseif(${QT_BUILD_SHARED_LIBS}) @@ -2037,7 +2038,11 @@ function(qt_add_module target) ### FIXME: Can we replace headers.pri? set(module_include_dir "${QT_BUILD_DIR}/${INSTALL_INCLUDEDIR}/${module_include_name}") qt_read_headers_pri("${module_include_dir}" "module_headers") - set(module_depends_header "${module_include_dir}/${module}Depends") + if(arg_HEADER_MODULE) + set(module_depends_header "") + else() + set(module_depends_header "${module_include_dir}/${module}Depends") + endif() if(is_framework) if(NOT is_interface_lib) set(public_headers_to_copy "${module_headers_public}" "${module_depends_header}") @@ -2046,7 +2051,7 @@ function(qt_add_module target) endif() else() set_property(TARGET ${target} APPEND PROPERTY PUBLIC_HEADER "${module_headers_public}") - set_property(TARGET ${target} APPEND PROPERTY PUBLIC_HEADER ${module_depends_header}) + set_property(TARGET ${target} APPEND PROPERTY PUBLIC_HEADER "${module_depends_header}") set_property(TARGET ${target} APPEND PROPERTY PRIVATE_HEADER "${module_headers_private}") endif() if (NOT ${arg_HEADER_MODULE}) diff --git a/cmake/QtPostProcess.cmake b/cmake/QtPostProcess.cmake index 8fbdf103c32..a99661f6928 100644 --- a/cmake/QtPostProcess.cmake +++ b/cmake/QtPostProcess.cmake @@ -169,7 +169,8 @@ function(qt_internal_create_module_depends_file target) endif() get_target_property(hasModuleHeaders "${target}" INTERFACE_MODULE_HAS_HEADERS) - if (${hasModuleHeaders}) + get_target_property(isHeaderModule "${target}" INTERFACE_MODULE_IS_HEADER_ONLY) + if (hasModuleHeaders AND NOT isHeaderModule) get_target_property(module_include_name "${target}" INTERFACE_MODULE_INCLUDE_NAME) qt_internal_write_depends_file(${module_include_name} ${qtdeps}) endif()