diff options
author | Leander Beernaert <leander.beernaert@qt.io> | 2020-01-27 14:56:40 +0100 |
---|---|---|
committer | Leander Beernaert <leander.beernaert@qt.io> | 2020-01-29 14:20:54 +0000 |
commit | a6ccef651ddc075cf205bbd2693a26c08de6817a (patch) | |
tree | 5f0fc413ee109bd792cdafdf4051db3b9e5ac268 /cmake/QtModuleConfig.cmake.in | |
parent | 34a112e383d4ce3f6fe7417c1873fd3b33176032 (diff) |
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 <alexandru.croitor@qt.io>
Reviewed-by: Qt CMake Build Bot
Diffstat (limited to 'cmake/QtModuleConfig.cmake.in')
-rw-r--r-- | cmake/QtModuleConfig.cmake.in | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/cmake/QtModuleConfig.cmake.in b/cmake/QtModuleConfig.cmake.in index 8e24362502..58a84fb5d5 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() |