diff options
author | Arjen Hiemstra <ahiemstra@heimr.nl> | 2021-08-02 14:56:56 +0200 |
---|---|---|
committer | Arjen Hiemstra <ahiemstra@heimr.nl> | 2022-01-18 12:09:57 +0000 |
commit | 6fefacf8c4efe8b35aa543514892cbf38cf7b4d9 (patch) | |
tree | d5ce029678fc557f35365581fd51e4e5f4d85d03 /modules/ECMFindQmlModule.cmake | |
parent | 3813fd1bc97fa6bb2189cc9586f77be4c30478d6 (diff) | |
download | extra-cmake-modules-6fefacf8c4efe8b35aa543514892cbf38cf7b4d9.tar.gz extra-cmake-modules-6fefacf8c4efe8b35aa543514892cbf38cf7b4d9.tar.bz2 |
Rename ECMQMLModules.cmake to ECMFindQmlModule.cmake
To avoid ambiguity with ECMQmlModule.cmake.
To preserve backward compatibility, we keep a version around of
ECMQMLModules.cmake that warns a user of it being moved and includes the
new file.
Diffstat (limited to 'modules/ECMFindQmlModule.cmake')
-rw-r--r-- | modules/ECMFindQmlModule.cmake | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/modules/ECMFindQmlModule.cmake b/modules/ECMFindQmlModule.cmake new file mode 100644 index 00000000..5d961af7 --- /dev/null +++ b/modules/ECMFindQmlModule.cmake @@ -0,0 +1,48 @@ +# SPDX-FileCopyrightText: 2015 Aleix Pol Gonzalez <aleixpol@blue-systems.com> +# +# SPDX-License-Identifier: BSD-3-Clause + +#[=======================================================================[.rst: +ECMFindQmlModule +---------------- + +Find QML import modules through a find_qmlmodule() call. +It uses the qmlplugindump application to find the plugins and sets them up as +runtime dependencies. + +This is useful so that when we configure a project we are noified when some +QML imports are not present in the system, thus having the application compilable +but fail at runtime. + +:: + + ecm_find_qmlmodule(<module_name> <version>...) + +Any further arguments passed will be forwarded into a find_package() call. See +find_package() documentation for more information. + +Usage example: + +.. code-block:: cmake + + ecm_find_qmlmodule(org.kde.kirigami 2.1) + +Since 5.38.0. +#]=======================================================================] + +set(MODULES_DIR ${CMAKE_CURRENT_LIST_DIR}) + +function(ecm_find_qmlmodule MODULE_NAME VERSION) + set(GENMODULE "${MODULE_NAME}-QMLModule") + + configure_file("${MODULES_DIR}/ECMFindQmlModule.cmake.in" "Find${GENMODULE}.cmake" @ONLY) + + set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_BINARY_DIR}" ${CMAKE_MODULE_PATH}) + find_package(${GENMODULE} ${ARGN}) + + if(COMMAND set_package_properties) + set_package_properties(${GENMODULE} PROPERTIES + DESCRIPTION "QML module '${MODULE_NAME}' is a runtime dependency." + TYPE RUNTIME) + endif() +endfunction() |