qtdeclarative now directly handles more qml-specific logic

Associated changes in the qtdeclarative repo now ensure that arguments
for qml plugins are handled on the calling side. This reduces the
qml-specific logic needed in qtbase and gives qtdeclarative clearer
control over qml build and install locations.

As part of that work, the INSTALL_LOCATION keyword used in
qt_internal_record_rcc_object_files() has been renamed to
INSTALL_DIRECTORY to make it consistent with the keyword used for the
same concept in other commands.

Pick-to: 6.1
Change-Id: Iebd319899f63d79fbe15ce965b84ce324c28a508
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
Craig Scott 2021-03-01 17:24:16 +11:00
parent 1df915ee1d
commit 78a64e310e
3 changed files with 5 additions and 12 deletions

View File

@ -461,7 +461,6 @@ set(__qt_add_plugin_single_args
OUTPUT_DIRECTORY OUTPUT_DIRECTORY
INSTALL_DIRECTORY INSTALL_DIRECTORY
ARCHIVE_INSTALL_DIRECTORY ARCHIVE_INSTALL_DIRECTORY
QML_TARGET_PATH
OUTPUT_NAME OUTPUT_NAME
${__default_target_info_args} ${__default_target_info_args}
) )

View File

@ -35,12 +35,6 @@ function(qt_internal_add_plugin target)
set(output_directory_default "${QT_BUILD_DIR}/${INSTALL_PLUGINSDIR}/${arg_TYPE}") set(output_directory_default "${QT_BUILD_DIR}/${INSTALL_PLUGINSDIR}/${arg_TYPE}")
set(install_directory_default "${INSTALL_PLUGINSDIR}/${arg_TYPE}") set(install_directory_default "${INSTALL_PLUGINSDIR}/${arg_TYPE}")
if (arg_QML_TARGET_PATH)
set(target_path "${arg_QML_TARGET_PATH}")
set(output_directory_default "${QT_BUILD_DIR}/${INSTALL_QMLDIR}/${target_path}")
set(install_directory_default "${INSTALL_QMLDIR}/${target_path}")
endif()
# Derive the class name from the target name if it's not explicitly specified. # Derive the class name from the target name if it's not explicitly specified.
# Don't set it for qml plugins though. # Don't set it for qml plugins though.
set(plugin_class_name "") set(plugin_class_name "")

View File

@ -23,13 +23,13 @@ function(qt_internal_add_resource target resourceName)
) )
qt_internal_record_rcc_object_files("${target}" "${out_targets}" qt_internal_record_rcc_object_files("${target}" "${out_targets}"
INSTALL_LOCATION "${INSTALL_LIBDIR}") INSTALL_DIRECTORY "${INSTALL_LIBDIR}")
endif() endif()
endfunction() endfunction()
function(qt_internal_record_rcc_object_files target resource_targets) function(qt_internal_record_rcc_object_files target resource_targets)
set(args_optional "") set(args_optional "")
set(args_single INSTALL_LOCATION) set(args_single INSTALL_DIRECTORY)
set(args_multi "") set(args_multi "")
cmake_parse_arguments(arg cmake_parse_arguments(arg
@ -48,7 +48,7 @@ function(qt_internal_record_rcc_object_files target resource_targets)
# Compute the install location of a resource object file in a prefix build. # Compute the install location of a resource object file in a prefix build.
# It's comprised of thee following path parts: # It's comprised of thee following path parts:
# #
# part (1) INSTALL_LOCATION. # part (1) INSTALL_DIRECTORY.
# A usual value is '${INSTALL_LIBDIR}/' for libraries # A usual value is '${INSTALL_LIBDIR}/' for libraries
# and '${INSTALL_QMLDIR}/foo/bar/' for qml plugin resources. # and '${INSTALL_QMLDIR}/foo/bar/' for qml plugin resources.
# #
@ -70,9 +70,9 @@ function(qt_internal_record_rcc_object_files target resource_targets)
set(object_file_name "${generated_cpp_file_relative_path}${CMAKE_CXX_OUTPUT_EXTENSION}") set(object_file_name "${generated_cpp_file_relative_path}${CMAKE_CXX_OUTPUT_EXTENSION}")
qt_path_join(rcc_object_file_path qt_path_join(rcc_object_file_path
"objects-$<CONFIG>" ${out_target} "${object_file_name}") "objects-$<CONFIG>" ${out_target} "${object_file_name}")
if(arg_INSTALL_LOCATION) if(arg_INSTALL_DIRECTORY)
qt_path_join(rcc_object_file_path qt_path_join(rcc_object_file_path
"${arg_INSTALL_LOCATION}" "${rcc_object_file_path}") "${arg_INSTALL_DIRECTORY}" "${rcc_object_file_path}")
else() else()
message(FATAL_ERROR "No install location given for object files to be installed" message(FATAL_ERROR "No install location given for object files to be installed"
" for the following resource target: '${out_target}'") " for the following resource target: '${out_target}'")