aboutsummaryrefslogtreecommitdiff
path: root/modules/ECMFindQmlModule.cmake.in
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.in
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.in')
-rw-r--r--modules/ECMFindQmlModule.cmake.in43
1 files changed, 43 insertions, 0 deletions
diff --git a/modules/ECMFindQmlModule.cmake.in b/modules/ECMFindQmlModule.cmake.in
new file mode 100644
index 00000000..7cd737b2
--- /dev/null
+++ b/modules/ECMFindQmlModule.cmake.in
@@ -0,0 +1,43 @@
+#=============================================================================
+# SPDX-FileCopyrightText: 2015 Aleix Pol Gonzalez <aleixpol@blue-systems.com>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#=============================================================================
+
+include(FindPackageHandleStandardArgs)
+include("${ECM_MODULE_DIR}/QtVersionOption.cmake")
+
+if (QT_MAJOR_VERSION EQUAL "5")
+ include("${ECM_MODULE_DIR}/ECMQueryQmake.cmake")
+ query_qmake(qt_binaries_dir QT_HOST_BINS)
+ find_program(QMLPLUGINDUMP_PROGRAM NAMES qmlplugindump HINTS ${qt_binaries_dir})
+elseif (QT_MAJOR_VERSION EQUAL "6")
+ find_package(Qt6QmlTools REQUIRED)
+ get_target_property(QMLPLUGINDUMP_PROGRAM Qt6::qmlplugindump LOCATION)
+endif()
+
+if(NOT QMLPLUGINDUMP_PROGRAM)
+ message(WARNING "Could not find qmlplugindump. It is necessary to look up qml module dependencies.")
+endif()
+
+execute_process(COMMAND "${QMLPLUGINDUMP_PROGRAM}" "@MODULE_NAME@" "@VERSION@" ERROR_VARIABLE ERRORS_OUTPUT OUTPUT_VARIABLE DISREGARD_VARIABLE RESULT_VARIABLE ExitCode TIMEOUT 30)
+
+if(ExitCode EQUAL 0)
+ set(@GENMODULE@_FOUND TRUE)
+ set(@GENMODULE@_VERSION "${PACKAGE_FIND_VERSION}")
+else()
+ message(STATUS "qmlplugindump failed for @MODULE_NAME@.")
+ set(@GENMODULE@_FOUND FALSE)
+endif()
+
+find_package_handle_standard_args(@GENMODULE@
+ FOUND_VAR
+ @GENMODULE@_FOUND
+ REQUIRED_VARS
+ @GENMODULE@_FOUND
+ VERSION_VAR
+ @GENMODULE@_VERSION
+ HANDLE_COMPONENTS
+)
+
+