Do not use the HEADER_MODULE argument in qt_generate_module_pri_file

HEADER_MODULE argument is passed to qt_generate_module_pri_file from
the qt_internal_add_module function, but the property means that the
module is an interface library. So it makes sense to replace this
argument with the reading of the target TYPE.

Change-Id: I1d8cd2ff732f526975cde6bdd4783fee44c8bd98
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
Alexey Edelev 2022-08-10 16:21:37 +02:00
parent 011d10fe26
commit a3e8d28fdb
2 changed files with 14 additions and 11 deletions

View File

@ -514,10 +514,7 @@ function(qt_internal_add_module target)
endif() endif()
list(APPEND ${public_headers_list} ${arg_PUBLIC_INCLUDE_DIRECTORIES}) list(APPEND ${public_headers_list} ${arg_PUBLIC_INCLUDE_DIRECTORIES})
set(header_module)
if(arg_HEADER_MODULE) if(arg_HEADER_MODULE)
set(header_module "HEADER_MODULE")
# Provide a *_timestamp target that can be used to trigger the build of custom_commands. # Provide a *_timestamp target that can be used to trigger the build of custom_commands.
set(timestamp_file "${CMAKE_CURRENT_BINARY_DIR}/timestamp") set(timestamp_file "${CMAKE_CURRENT_BINARY_DIR}/timestamp")
add_custom_command(OUTPUT "${timestamp_file}" add_custom_command(OUTPUT "${timestamp_file}"
@ -849,7 +846,7 @@ set(QT_LIBINFIX \"${QT_LIBINFIX}\")")
endif() endif()
qt_describe_module(${target}) qt_describe_module(${target})
qt_add_list_file_finalizer(qt_finalize_module ${target} ${arg_INTERNAL_MODULE} ${arg_NO_PRIVATE_MODULE} ${header_module}) qt_add_list_file_finalizer(qt_finalize_module ${target} ${arg_INTERNAL_MODULE} ${arg_NO_PRIVATE_MODULE})
endfunction() endfunction()
function(qt_finalize_module target) function(qt_finalize_module target)

View File

@ -257,7 +257,7 @@ endfunction()
# Generates module .pri files for consumption by qmake # Generates module .pri files for consumption by qmake
function(qt_generate_module_pri_file target) function(qt_generate_module_pri_file target)
set(flags INTERNAL_MODULE HEADER_MODULE NO_PRIVATE_MODULE) set(flags INTERNAL_MODULE NO_PRIVATE_MODULE)
set(options) set(options)
set(multiopts) set(multiopts)
cmake_parse_arguments(arg "${flags}" "${options}" "${multiopts}" ${ARGN}) cmake_parse_arguments(arg "${flags}" "${options}" "${multiopts}" ${ARGN})
@ -266,7 +266,13 @@ function(qt_generate_module_pri_file target)
set(pri_files) set(pri_files)
set(property_prefix) set(property_prefix)
if(arg_HEADER_MODULE)
get_target_property(target_type ${target} TYPE)
set(is_interface_lib FALSE)
if(target_type STREQUAL "INTERFACE_LIBRARY")
set(is_interface_lib TRUE)
endif()
if(is_interface_lib)
set(property_prefix "INTERFACE_") set(property_prefix "INTERFACE_")
endif() endif()
@ -323,7 +329,7 @@ function(qt_generate_module_pri_file target)
get_target_property(config_module_name ${target} _qt_config_module_name) get_target_property(config_module_name ${target} _qt_config_module_name)
get_target_property(qmake_module_config ${target} ${property_prefix}QT_QMAKE_MODULE_CONFIG) get_target_property(qmake_module_config ${target} ${property_prefix}QT_QMAKE_MODULE_CONFIG)
if (arg_HEADER_MODULE) if (is_interface_lib)
list(APPEND qmake_module_config "no_link") list(APPEND qmake_module_config "no_link")
endif() endif()
if(qmake_module_config) if(qmake_module_config)
@ -347,7 +353,7 @@ ${framework_base_path}/${fw_private_module_header_dir}")
$$QT_MODULE_INCLUDE_BASE/${module_versioned_inner_include_dir}") $$QT_MODULE_INCLUDE_BASE/${module_versioned_inner_include_dir}")
endif() endif()
if(arg_HEADER_MODULE) if(is_interface_lib)
set(module_name_in_pri "") set(module_name_in_pri "")
else() else()
get_target_property(module_name_in_pri ${target} OUTPUT_NAME) get_target_property(module_name_in_pri ${target} OUTPUT_NAME)
@ -371,7 +377,7 @@ $$QT_MODULE_INCLUDE_BASE/${module_versioned_inner_include_dir}")
qt_path_join(target_path ${QT_BUILD_DIR} ${INSTALL_MKSPECSDIR}/modules) qt_path_join(target_path ${QT_BUILD_DIR} ${INSTALL_MKSPECSDIR}/modules)
unset(private_module_frameworks) unset(private_module_frameworks)
if(arg_HEADER_MODULE) if(is_interface_lib)
set(module_plugin_types "") set(module_plugin_types "")
else() else()
get_target_property(module_plugin_types ${target} QMAKE_MODULE_PLUGIN_TYPES) get_target_property(module_plugin_types ${target} QMAKE_MODULE_PLUGIN_TYPES)
@ -455,7 +461,7 @@ ${module_pri_extra_content}
set(private_pri_file_name "qt_lib_${config_module_name}_private.pri") set(private_pri_file_name "qt_lib_${config_module_name}_private.pri")
set(private_module_dependencies "") set(private_module_dependencies "")
if(NOT arg_HEADER_MODULE) if(NOT is_interface_lib)
qt_get_direct_module_dependencies(${target}Private private_module_dependencies) qt_get_direct_module_dependencies(${target}Private private_module_dependencies)
endif() endif()
list(JOIN private_module_dependencies " " private_module_dependencies) list(JOIN private_module_dependencies " " private_module_dependencies)
@ -536,7 +542,7 @@ QT.${config_module_name}_private.disabled_features = ${disabled_private_features
-P "${QT_CMAKE_DIR}/QtGenerateLibPri.cmake" -P "${QT_CMAKE_DIR}/QtGenerateLibPri.cmake"
VERBATIM) VERBATIM)
add_custom_target(${target}_lib_pri DEPENDS "${private_pri_file_path}") add_custom_target(${target}_lib_pri DEPENDS "${private_pri_file_path}")
if(arg_HEADER_MODULE) if(is_interface_lib)
add_dependencies(${target}_pri_dep_timestamp ${target}_lib_pri) add_dependencies(${target}_pri_dep_timestamp ${target}_lib_pri)
else() else()
add_dependencies(${target} ${target}_lib_pri) add_dependencies(${target} ${target}_lib_pri)