telepathy-qt: CMake: Validate imported components in CMake Config file

Alexandr Akulich kaffeine at kemper.freedesktop.org
Mon Nov 11 17:28:15 UTC 2019


Module: telepathy-qt
Branch: master
Commit: d99c5fbcf98663f1d51e3a07cc8fdc5c325a4633
URL:    http://cgit.freedesktop.org/telepathy/telepathy-qt/commit/?id=d99c5fbcf98663f1d51e3a07cc8fdc5c325a4633

Author: Alexander Akulich <akulichalexander at gmail.com>
Date:   Fri Nov  8 22:50:59 2019 +0300

CMake: Validate imported components in CMake Config file

---

 TelepathyQt/TelepathyQtConfig.cmake.in | 26 ++++++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/TelepathyQt/TelepathyQtConfig.cmake.in b/TelepathyQt/TelepathyQtConfig.cmake.in
index fa474951..5f5845ae 100644
--- a/TelepathyQt/TelepathyQtConfig.cmake.in
+++ b/TelepathyQt/TelepathyQtConfig.cmake.in
@@ -28,13 +28,35 @@ if(NOT TelepathyQt at QT_VERSION_MAJOR@_FOUND)
     endif()
     unset(_QT_COMPONENTS)
 
-    # attempt to find the generated TelepathyQt4Targets.cmake in the same directory
+    # attempt to find the generated Targets file in the same directory
     get_filename_component(_TPQT at QT_VERSION_MAJOR@_CONFIG_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
     find_file(_TPQT at QT_VERSION_MAJOR@_TARGETS_FILE TelepathyQt at QT_VERSION_MAJOR@Targets.cmake PATHS ${_TPQT at QT_VERSION_MAJOR@_CONFIG_DIR} NO_DEFAULT_PATH)
 
     include(${_TPQT at QT_VERSION_MAJOR@_TARGETS_FILE})
 
-    # set the directories
+    set(_TelepathyQt at QT_VERSION_MAJOR@_NOTFOUND_MESSAGE)
+    set(_WANTED_COMPONENTS "${TelepathyQt at QT_VERSION_MAJOR@_FIND_COMPONENTS}")
+    list (FIND _WANTED_COMPONENTS "Core" _CORE_INDEX)
+    if (${_CORE_INDEX} LESS 0)
+        list(APPEND _WANTED_COMPONENTS Core)
+    endif()
+    foreach(_MODULE ${_WANTED_COMPONENTS})
+        if(NOT TARGET TelepathyQt at QT_VERSION_MAJOR@::${_MODULE})
+            if (TelepathyQt at QT_VERSION_MAJOR@_FIND_REQUIRED_${_MODULE})
+                set(_TelepathyQt at QT_VERSION_MAJOR@_NOTFOUND_MESSAGE
+                    "${_TelepathyQt at QT_VERSION_MAJOR@_NOTFOUND_MESSAGE}Failed to find TelepathyQt at QT_VERSION_MAJOR@ component \"${_MODULE}\"\n")
+            elseif(NOT TelepathyQt at QT_VERSION_MAJOR@_FIND_QUIETLY)
+                message(WARNING "Failed to find TelepathyQt at QT_VERSION_MAJOR@ component \"${_MODULE}\"")
+            endif()
+        endif()
+    endforeach()
+
+    if (_TelepathyQt at QT_VERSION_MAJOR@_NOTFOUND_MESSAGE)
+        set(TelepathyQt at QT_VERSION_MAJOR@_NOT_FOUND_MESSAGE "${_TelepathyQt at QT_VERSION_MAJOR@_NOTFOUND_MESSAGE}")
+        set(TelepathyQt at QT_VERSION_MAJOR@_FOUND False)
+    endif()
+
+    # Legacy stuff for old-style import
 
     # set the LIBRARIES variable
     get_target_property(TELEPATHY_QT at QT_VERSION_MAJOR@_LIBRARIES



More information about the telepathy-commits mailing list