From a6ccef651ddc075cf205bbd2693a26c08de6817a Mon Sep 17 00:00:00 2001 From: Leander Beernaert Date: Mon, 27 Jan 2020 14:56:40 +0100 Subject: Generate metatypes dependency file Due to generator expression it is impossible to recursively evaluate the link dependencies of a target. This is required by QtDeclarative's qmltyperegistrar. To overcome this we generate a ${target}_metatypes_dep.txt file which contain lines with the following pattern: ${PATH_TO_METATYPES.json}=${PATH_TO_METATYPES_DEP.txt} This can be used to recursively evaluate the dependencies at run time. Change-Id: Ia4cee0632c16ba9631e0289db906fe9d320844a3 Reviewed-by: Alexandru Croitor Reviewed-by: Qt CMake Build Bot --- cmake/QtModuleConfig.cmake.in | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'cmake/QtModuleConfig.cmake.in') diff --git a/cmake/QtModuleConfig.cmake.in b/cmake/QtModuleConfig.cmake.in index 8e243625027..58a84fb5d54 100644 --- a/cmake/QtModuleConfig.cmake.in +++ b/cmake/QtModuleConfig.cmake.in @@ -44,3 +44,25 @@ if(NOT _qt_module_target_type STREQUAL "INTERFACE_LIBRARY") list(APPEND QT_ALL_PLUGIN_TYPES_FOUND_VIA_FIND_PACKAGE "${_qt_module_plugin_types}") endif() endif() + +# Apply meta types properties +if (@QT_MODULE_HAS_META_TYPES_FILE@) + if (NOT QT_NO_CREATE_TARGETS) + set_target_properties("@INSTALL_CMAKE_NAMESPACE@::@target@" PROPERTIES + INTERFACE_QT_MODULE_HAS_META_TYPES TRUE + INTERFACE_QT_META_TYPES_INSTALL_FILE "@QT_MODULE_META_TYPES_FILE@" + INTERFACE_QT_META_TYPES_INSTALL_DEP_FILE "@QT_MODULE_META_TYPES_DEP_FILE@" + ) + endif() + + if (NOT QT_NO_CREATE_VERSIONLESS_TARGETS) + get_target_property(is_alias_target "Qt::@target@" ALIASED_TARGET) + if (NOT is_alias_target) + set_target_properties("Qt::@target@" PROPERTIES + INTERFACE_QT_MODULE_HAS_META_TYPES TRUE + INTERFACE_QT_META_TYPES_INSTALL_FILE "@QT_MODULE_META_TYPES_FILE@" + INTERFACE_QT_META_TYPES_INSTALL_DEP_FILE "@QT_MODULE_META_TYPES_DEP_FILE@" + ) + endif() + endif() +endif() -- cgit v1.2.3