summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Akulich <akulichalexander@gmail.com>2019-11-08 22:50:59 +0300
committerAlexander Akulich <akulichalexander@gmail.com>2019-11-09 01:09:11 +0300
commitd99c5fbcf98663f1d51e3a07cc8fdc5c325a4633 (patch)
tree228ad66fa2d1bafab6a6cf0cdb3081f7b3abf8dd
parent5f9d4fb3285a6d5e34ea99b2350a879f5f3f7ecd (diff)
CMake: Validate imported components in CMake Config file
-rw-r--r--TelepathyQt/TelepathyQtConfig.cmake.in26
1 files 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@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@QT_VERSION_MAJOR@_CONFIG_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
find_file(_TPQT@QT_VERSION_MAJOR@_TARGETS_FILE TelepathyQt@QT_VERSION_MAJOR@Targets.cmake PATHS ${_TPQT@QT_VERSION_MAJOR@_CONFIG_DIR} NO_DEFAULT_PATH)
include(${_TPQT@QT_VERSION_MAJOR@_TARGETS_FILE})
- # set the directories
+ set(_TelepathyQt@QT_VERSION_MAJOR@_NOTFOUND_MESSAGE)
+ set(_WANTED_COMPONENTS "${TelepathyQt@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@QT_VERSION_MAJOR@::${_MODULE})
+ if (TelepathyQt@QT_VERSION_MAJOR@_FIND_REQUIRED_${_MODULE})
+ set(_TelepathyQt@QT_VERSION_MAJOR@_NOTFOUND_MESSAGE
+ "${_TelepathyQt@QT_VERSION_MAJOR@_NOTFOUND_MESSAGE}Failed to find TelepathyQt@QT_VERSION_MAJOR@ component \"${_MODULE}\"\n")
+ elseif(NOT TelepathyQt@QT_VERSION_MAJOR@_FIND_QUIETLY)
+ message(WARNING "Failed to find TelepathyQt@QT_VERSION_MAJOR@ component \"${_MODULE}\"")
+ endif()
+ endif()
+ endforeach()
+
+ if (_TelepathyQt@QT_VERSION_MAJOR@_NOTFOUND_MESSAGE)
+ set(TelepathyQt@QT_VERSION_MAJOR@_NOT_FOUND_MESSAGE "${_TelepathyQt@QT_VERSION_MAJOR@_NOTFOUND_MESSAGE}")
+ set(TelepathyQt@QT_VERSION_MAJOR@_FOUND False)
+ endif()
+
+ # Legacy stuff for old-style import
# set the LIBRARIES variable
get_target_property(TELEPATHY_QT@QT_VERSION_MAJOR@_LIBRARIES