aboutsummaryrefslogtreecommitdiff
path: root/modules/ECMFindQmlModule.cmake
diff options
context:
space:
mode:
authorArjen Hiemstra <ahiemstra@heimr.nl>2021-08-02 14:56:56 +0200
committerArjen Hiemstra <ahiemstra@heimr.nl>2022-01-18 12:09:57 +0000
commit6fefacf8c4efe8b35aa543514892cbf38cf7b4d9 (patch)
treed5ce029678fc557f35365581fd51e4e5f4d85d03 /modules/ECMFindQmlModule.cmake
parent3813fd1bc97fa6bb2189cc9586f77be4c30478d6 (diff)
downloadextra-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.cmake48
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()