Warning, /frameworks/extra-cmake-modules/modules/ECMFindQmlModule.cmake.in is written in an unsupported language. File is not indexed.
0001 #============================================================================= 0002 # SPDX-FileCopyrightText: 2015 Aleix Pol Gonzalez <aleixpol@blue-systems.com> 0003 # SPDX-FileCopyrightText: 2023 Alexander Lohnau <alexander.lohnau@gmx.de> 0004 # 0005 # SPDX-License-Identifier: BSD-3-Clause 0006 #============================================================================= 0007 0008 include(FindPackageHandleStandardArgs) 0009 include("${ECM_MODULE_DIR}/QtVersionOption.cmake") 0010 include("${ECM_MODULE_DIR}/ECMQueryQt.cmake") 0011 0012 if (QT_MAJOR_VERSION EQUAL "6") 0013 include(${ECM_MODULE_DIR}/ECMQmlModule.cmake) 0014 # Get the qmldir file 0015 _ecm_qmlmodule_uri_to_path(MODULEDIR "@MODULE_NAME@" "@VERSION@") 0016 set(KDE_QMLDIR "${KDE_INSTALL_FULL_QMLDIR}/${MODULEDIR}") 0017 find_file(QMLDIR_FILE qmldir ${KDE_QMLDIR} NO_CACHE) 0018 if (NOT QMLDIR_FILE) # Check the install destination, the QT_PLUGIN_PATH might not be set up correctly at this point 0019 # Check the Qt installation 0020 ecm_query_qt(qt_qml_dir QT_INSTALL_QML) 0021 set(QMLDIR_FILE "${qt_qml_dir}/${MODULEDIR}/qmldir") 0022 if (NOT EXISTS "${QMLDIR_FILE}") 0023 message(WARNING "qmldir not found in ${KDE_QMLDIR} or ${QMLDIR_FILE}") 0024 set(MODULE_NOTFOUND TRUE) 0025 endif() 0026 endif() 0027 0028 if (NOT MODULE_NOTFOUND AND NOT "@VERSION@" STREQUAL "") # Check if we even need to check the version 0029 find_file(VERSION_FILE kde-qmlmodule.version ${KDE_QMLDIR} NO_CACHE) 0030 if (VERSION_FILE) 0031 file(READ "${VERSION_FILE}" FILE_CONTENTS) 0032 if ("${FILE_CONTENTS}" MATCHES "([0-9]+(\\.[0-9]+)*)") 0033 if ("${CMAKE_MATCH_1}" VERSION_GREATER_EQUAL "@VERSION@") 0034 set(@GENMODULE@_FOUND TRUE) 0035 endif() 0036 set(@GENMODULE@_VERSION "${CMAKE_MATCH_1}") 0037 endif() 0038 else() 0039 file(READ "${QMLDIR_FILE}" FILE_CONTENTS) 0040 if ("${FILE_CONTENTS}" MATCHES "# KDE-qmldir-Version: ([0-9]+(\\.[0-9]+)*)") 0041 if ("${CMAKE_MATCH_1}" VERSION_GREATER_EQUAL "@VERSION@") 0042 set(@GENMODULE@_FOUND TRUE) 0043 endif() 0044 set(@GENMODULE@_VERSION "${CMAKE_MATCH_1}") 0045 endif() 0046 endif() 0047 elseif(NOT MODULE_NOTFOUND) # if we don't have a specific version and the qmldir file was found, we are all set 0048 set(@GENMODULE@_FOUND TRUE) 0049 endif() 0050 endif() 0051 0052 # If we haven't checked the version above, use qmlplugindump 0053 if (NOT CMAKE_CROSSCOMPILING AND NOT MODULE_NOTFOUND AND NOT @GENMODULE@_FOUND) 0054 if (QT_MAJOR_VERSION EQUAL "6") 0055 find_package(Qt6 COMPONENTS QmlTools REQUIRED) 0056 get_target_property(QMLPLUGINDUMP_PROGRAM Qt6::qmlplugindump LOCATION) 0057 else() 0058 ecm_query_qt(qt_binaries_dir QT_HOST_BINS) 0059 find_program(QMLPLUGINDUMP_PROGRAM NAMES qmlplugindump HINTS ${qt_binaries_dir}) 0060 endif() 0061 0062 set(ENV{QML2_IMPORT_PATH} ${KDE_INSTALL_FULL_QMLDIR}) 0063 execute_process(COMMAND "${QMLPLUGINDUMP_PROGRAM}" "@MODULE_NAME@" "@VERSION@" ERROR_VARIABLE ERRORS_OUTPUT OUTPUT_VARIABLE DISREGARD_VARIABLE RESULT_VARIABLE ExitCode TIMEOUT 30) 0064 if(ExitCode EQUAL 0) 0065 set(@GENMODULE@_FOUND TRUE) 0066 else() 0067 message(STATUS "qmlplugindump failed for @MODULE_NAME@.") 0068 set(@GENMODULE@_FOUND FALSE) 0069 endif() 0070 endif() 0071 0072 set(@GENMODULE@_FOUND ${@GENMODULE@_FOUND} PARENT_SCOPE) 0073 set(@GENMODULE@_VERSION ${@GENMODULE@_VERSION} PARENT_SCOPE) 0074 find_package_handle_standard_args(@GENMODULE@ 0075 VERSION_VAR @GENMODULE@_VERSION 0076 REQUIRED_VARS @GENMODULE@_FOUND 0077 HANDLE_COMPONENTS 0078 )