telepathy-qt: CMake/Config.cmake: Get paths from imported targets

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


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

Author: Alexander Akulich <akulichalexander at gmail.com>
Date:   Fri Nov  8 21:57:35 2019 +0300

CMake/Config.cmake: Get paths from imported targets

---

 TelepathyQt/TelepathyQtConfig.cmake.in        | 39 ++++++++++++++++++++-------
 TelepathyQt/TelepathyQtServiceConfig.cmake.in | 37 +++++++++++++++++++------
 2 files changed, 58 insertions(+), 18 deletions(-)

diff --git a/TelepathyQt/TelepathyQtConfig.cmake.in b/TelepathyQt/TelepathyQtConfig.cmake.in
index e841b3ad..fa474951 100644
--- a/TelepathyQt/TelepathyQtConfig.cmake.in
+++ b/TelepathyQt/TelepathyQtConfig.cmake.in
@@ -28,19 +28,38 @@ if(NOT TelepathyQt at QT_VERSION_MAJOR@_FOUND)
     endif()
     unset(_QT_COMPONENTS)
 
-    # set the directories
-    if(NOT TELEPATHY_QT at QT_VERSION_MAJOR@_INSTALL_DIR)
-        set_and_check(TELEPATHY_QT at QT_VERSION_MAJOR@_INSTALL_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@")
-    endif()
-
-    set_and_check(TELEPATHY_QT at QT_VERSION_MAJOR@_INCLUDE_DIR   "@PACKAGE_INCLUDE_INSTALL_DIR@/telepathy-qt at QT_VERSION_MAJOR@")
-    set_and_check(TELEPATHY_QT at QT_VERSION_MAJOR@_LIB_DIR       "@PACKAGE_LIB_INSTALL_DIR@")
-
     # attempt to find the generated TelepathyQt4Targets.cmake 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)
 
-    # set the TELEPATHY_QT at QT_VERSION_MAJOR@_LIBRARIES variable
     include(${_TPQT at QT_VERSION_MAJOR@_TARGETS_FILE})
-    set(TELEPATHY_QT at QT_VERSION_MAJOR@_LIBRARIES telepathy-qt at QT_VERSION_MAJOR@)
+
+    # set the directories
+
+    # set the LIBRARIES variable
+    get_target_property(TELEPATHY_QT at QT_VERSION_MAJOR@_LIBRARIES
+        TelepathyQt at QT_VERSION_MAJOR@::Core
+        IMPORTED_LOCATION
+    )
+
+    if(NOT TELEPATHY_QT at QT_VERSION_MAJOR@_LIBRARIES)
+        # If there is no default IMPORTED_LOCATION then get all configurations...
+        get_target_property(_IMPORTED_CONFIGURATIONS
+            TelepathyQt at QT_VERSION_MAJOR@::Core
+            IMPORTED_CONFIGURATIONS
+        )
+        # ... and pick up the first one
+        list(GET _IMPORTED_CONFIGURATIONS 0 _SELECTED_CONFIGURATION)
+        get_target_property(TELEPATHY_QT at QT_VERSION_MAJOR@_LIBRARIES
+            TelepathyQt at QT_VERSION_MAJOR@::Core
+            IMPORTED_LOCATION_${_SELECTED_CONFIGURATION}
+        )
+        unset(_IMPORTED_CONFIGURATIONS)
+        unset(_SELECTED_CONFIGURATION)
+    endif()
+
+    get_target_property(TELEPATHY_QT at QT_VERSION_MAJOR@_INCLUDE_DIR
+        TelepathyQt at QT_VERSION_MAJOR@::Core
+        INTERFACE_INCLUDE_DIRECTORIES
+    )
 endif()
diff --git a/TelepathyQt/TelepathyQtServiceConfig.cmake.in b/TelepathyQt/TelepathyQtServiceConfig.cmake.in
index eec1aed8..687435b6 100644
--- a/TelepathyQt/TelepathyQtServiceConfig.cmake.in
+++ b/TelepathyQt/TelepathyQtServiceConfig.cmake.in
@@ -10,14 +10,35 @@ set(TELEPATHY_QT at QT_VERSION_MAJOR@_SERVICE_VERSION_MICRO @TP_QT_MICRO_VERSION@)
 set(TELEPATHY_QT at QT_VERSION_MAJOR@_SERVICE_VERSION_NANO @TP_QT_NANO_VERSION@)
 set(TELEPATHY_QT at QT_VERSION_MAJOR@_SERVICE_VERSION @PACKAGE_VERSION@)
 
-# set the directories
-if(NOT TELEPATHY_QT at QT_VERSION_MAJOR@_SERVICE_INSTALL_DIR)
-   set_and_check(TELEPATHY_QT at QT_VERSION_MAJOR@_SERVICE_INSTALL_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@")
-endif()
+find_package(TelepathyQt at QT_VERSION_MAJOR@)
 
-set_and_check(TELEPATHY_QT at QT_VERSION_MAJOR@_SERVICE_INCLUDE_DIR  "@PACKAGE_INCLUDE_INSTALL_DIR@/telepathy-qt at QT_VERSION_MAJOR@")
-set_and_check(TELEPATHY_QT at QT_VERSION_MAJOR@_SERVICE_LIB_DIR      "@PACKAGE_LIB_INSTALL_DIR@")
+# set the directories
+if(TARGET TelepathyQt at QT_VERSION_MAJOR@::Service)
+    # set the LIBRARIES variable
+    get_target_property(TELEPATHY_QT at QT_VERSION_MAJOR@_SERVICE_LIBRARIES
+        TelepathyQt at QT_VERSION_MAJOR@::Service
+        IMPORTED_LOCATION
+    )
 
-find_package(TelepathyQt at QT_VERSION_MAJOR@ REQUIRED)
+    if(NOT TELEPATHY_QT at QT_VERSION_MAJOR@_SERVICE_LIBRARIES)
+        # If there is no default IMPORTED_LOCATION then get all configurations...
+        get_target_property(_IMPORTED_CONFIGURATIONS
+            TelepathyQt at QT_VERSION_MAJOR@::Service
+            IMPORTED_CONFIGURATIONS
+        )
+        # ... and pick up the first one
+        list(GET _IMPORTED_CONFIGURATIONS 0 _SELECTED_CONFIGURATION)
+        get_target_property(TELEPATHY_QT at QT_VERSION_MAJOR@_SERVICE_LIBRARIES
+            TelepathyQt at QT_VERSION_MAJOR@::Service
+            IMPORTED_LOCATION_${_SELECTED_CONFIGURATION}
+        )
+        unset(_IMPORTED_CONFIGURATIONS)
+        unset(_SELECTED_CONFIGURATION)
+    endif()
 
-set(TELEPATHY_QT at QT_VERSION_MAJOR@_SERVICE_LIBRARIES telepathy-qt at QT_VERSION_MAJOR@-service)
+    message(STATUS "TELEPATHY_QT_SERVICE_LIBRARIES Libs: ${TELEPATHY_QT at QT_VERSION_MAJOR@_SERVICE_LIBRARIES}")
+    get_target_property(TELEPATHY_QT at QT_VERSION_MAJOR@_SERVICE_INCLUDE_DIR
+        TelepathyQt at QT_VERSION_MAJOR@::Service
+        INTERFACE_INCLUDE_DIRECTORIES
+    )
+endif()



More information about the telepathy-commits mailing list