diff options
Diffstat (limited to 'modules/ECMFindQmlModule.cmake.in')
-rw-r--r-- | modules/ECMFindQmlModule.cmake.in | 43 |
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 +) + + |