diff options
-rw-r--r-- | TelepathyQt/CMakeLists.txt | 48 | ||||
-rw-r--r-- | TelepathyQt/Farstream/CMakeLists.txt | 19 | ||||
-rw-r--r-- | TelepathyQt/Farstream/TelepathyQtFarstreamConfig.cmake.in | 11 | ||||
-rw-r--r-- | TelepathyQt/TelepathyQtConfig.cmake.in | 11 | ||||
-rw-r--r-- | TelepathyQt/TelepathyQtServiceConfig.cmake.in | 10 | ||||
-rw-r--r-- | cmake/modules/BasicFindPackageVersion.cmake.in | 30 | ||||
-rw-r--r-- | cmake/modules/MacroWriteBasicCMakeVersionFile.cmake | 21 |
7 files changed, 56 insertions, 94 deletions
diff --git a/TelepathyQt/CMakeLists.txt b/TelepathyQt/CMakeLists.txt index d04cccc1..d879de99 100644 --- a/TelepathyQt/CMakeLists.txt +++ b/TelepathyQt/CMakeLists.txt @@ -820,22 +820,6 @@ if (NOT WIN32) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig COMPONENT pkgconfig) endif () -# CMake Version and config files -include(MacroWriteBasicCMakeVersionFile) - -# all the following variables are put into TelepathyQt*Config.cmake, so -# they are usable by projects using TelepathyQt. -make_install_path_absolute(TELEPATHY_QT_INCLUDE_DIR ${INCLUDE_INSTALL_DIR}/telepathy-qt${QT_VERSION_MAJOR}) -make_install_path_absolute(TELEPATHY_QT_LIB_DIR ${LIB_INSTALL_DIR}) -make_install_path_absolute(TELEPATHY_QT_DATA_DIR ${DATA_INSTALL_DIR}) - -# Configure the actual Config file -configure_file(TelepathyQtConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}Config.cmake" @ONLY) - -# this file is used by to check if the installed version can be used. -macro_write_basic_cmake_version_file(${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}ConfigVersion.cmake - ${PACKAGE_VERSION}) - # Find out the correct installation directory if (USE_COMMON_CMAKE_PACKAGE_CONFIG_DIR) set(_TelepathyQtConfig_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/TelepathyQt${QT_VERSION_MAJOR}) @@ -843,6 +827,20 @@ else () set(_TelepathyQtConfig_INSTALL_DIR ${LIB_INSTALL_DIR}/TelepathyQt${QT_VERSION_MAJOR}/cmake) endif () +# CMake Version and config files +include(CMakePackageConfigHelpers) + +# Configure the actual Config file +configure_package_config_file(TelepathyQtConfig.cmake.in + "${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}Config.cmake" + INSTALL_DESTINATION ${_TelepathyQtConfig_INSTALL_DIR} + PATH_VARS CMAKE_INSTALL_PREFIX INCLUDE_INSTALL_DIR LIB_INSTALL_DIR DATA_INSTALL_DIR + NO_CHECK_REQUIRED_COMPONENTS_MACRO) + +# this file is used by to check if the installed version can be used. +write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}ConfigVersion.cmake + VERSION ${PACKAGE_VERSION} COMPATIBILITY SameMajorVersion) + install(EXPORT TelepathyQt${QT_VERSION_MAJOR}Targets DESTINATION ${_TelepathyQtConfig_INSTALL_DIR} COMPONENT headers) @@ -1023,19 +1021,23 @@ if(ENABLE_SERVICE_SUPPORT) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}Service.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig COMPONENT pkgconfig) endif () - # Configure the actual Config file - configure_file(TelepathyQtServiceConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}ServiceConfig.cmake" @ONLY) - - # this file is used by to check if the installed version can be used. - macro_write_basic_cmake_version_file(${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}ServiceConfigVersion.cmake - ${PACKAGE_VERSION}) - if(USE_COMMON_CMAKE_PACKAGE_CONFIG_DIR) set(_TelepathyQtServiceConfig_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/TelepathyQt${QT_VERSION_MAJOR}Service) else() set(_TelepathyQtServiceConfig_INSTALL_DIR ${LIB_INSTALL_DIR}/TelepathyQt${QT_VERSION_MAJOR}Service/cmake) endif() + # Configure the actual Config file + configure_package_config_file(TelepathyQtServiceConfig.cmake.in + "${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}ServiceConfig.cmake" + INSTALL_DESTINATION ${_TelepathyQtServiceConfig_INSTALL_DIR} + PATH_VARS CMAKE_INSTALL_PREFIX INCLUDE_INSTALL_DIR LIB_INSTALL_DIR DATA_INSTALL_DIR + NO_CHECK_REQUIRED_COMPONENTS_MACRO) + + # this file is used by to check if the installed version can be used. + write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}ServiceConfigVersion.cmake + VERSION ${PACKAGE_VERSION} COMPATIBILITY SameMajorVersion) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}ServiceConfigVersion.cmake ${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}ServiceConfig.cmake DESTINATION ${_TelepathyQtServiceConfig_INSTALL_DIR} diff --git a/TelepathyQt/Farstream/CMakeLists.txt b/TelepathyQt/Farstream/CMakeLists.txt index 72b22fe1..d8582d9a 100644 --- a/TelepathyQt/Farstream/CMakeLists.txt +++ b/TelepathyQt/Farstream/CMakeLists.txt @@ -85,20 +85,23 @@ if(FARSTREAM_COMPONENTS_FOUND) DESTINATION ${LIB_INSTALL_DIR}/pkgconfig COMPONENT pkgconfig) endif () - # Configure the actual Config file - configure_file(TelepathyQtFarstreamConfig.cmake.in - "${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}FarstreamConfig.cmake" @ONLY) - - # this file is used by to check if the installed version can be used. - macro_write_basic_cmake_version_file(${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}FarstreamConfigVersion.cmake - ${PACKAGE_VERSION}) - if(USE_COMMON_CMAKE_PACKAGE_CONFIG_DIR) set(_TelepathyQtFarstreamConfig_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/TelepathyQt${QT_VERSION_MAJOR}Farstream) else() set(_TelepathyQtFarstreamConfig_INSTALL_DIR ${LIB_INSTALL_DIR}/TelepathyQt${QT_VERSION_MAJOR}Farstream/cmake) endif() + # Configure the actual Config file + configure_package_config_file(TelepathyQtFarstreamConfig.cmake.in + "${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}FarstreamConfig.cmake" + INSTALL_DESTINATION ${_TelepathyQtFarstreamConfig_INSTALL_DIR} + PATH_VARS CMAKE_INSTALL_PREFIX INCLUDE_INSTALL_DIR LIB_INSTALL_DIR DATA_INSTALL_DIR + NO_CHECK_REQUIRED_COMPONENTS_MACRO) + + # this file is used by to check if the installed version can be used. + write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}FarstreamConfigVersion.cmake + VERSION ${PACKAGE_VERSION} COMPATIBILITY SameMajorVersion) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}FarstreamConfigVersion.cmake ${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt${QT_VERSION_MAJOR}FarstreamConfig.cmake DESTINATION ${_TelepathyQtFarstreamConfig_INSTALL_DIR} diff --git a/TelepathyQt/Farstream/TelepathyQtFarstreamConfig.cmake.in b/TelepathyQt/Farstream/TelepathyQtFarstreamConfig.cmake.in index c1a0e676..986247cd 100644 --- a/TelepathyQt/Farstream/TelepathyQtFarstreamConfig.cmake.in +++ b/TelepathyQt/Farstream/TelepathyQtFarstreamConfig.cmake.in @@ -2,6 +2,9 @@ # Any changed value in this file will be overwritten by CMake. if(NOT TelepathyQt@QT_VERSION_MAJOR@Farstream_FOUND) + + @PACKAGE_INIT@ + # set the version number set(TELEPATHY_QT@QT_VERSION_MAJOR@_FARSTREAM_VERSION_MAJOR @TP_QT_MAJOR_VERSION@) set(TELEPATHY_QT@QT_VERSION_MAJOR@_FARSTREAM_VERSION_MINOR @TP_QT_MINOR_VERSION@) @@ -11,12 +14,12 @@ if(NOT TelepathyQt@QT_VERSION_MAJOR@Farstream_FOUND) # set the directories if(NOT TELEPATHY_QT@QT_VERSION_MAJOR@_FARSTREAM_INSTALL_DIR) - set(TELEPATHY_QT@QT_VERSION_MAJOR@_FARSTREAM_INSTALL_DIR "@CMAKE_INSTALL_PREFIX@") + set_and_check(TELEPATHY_QT@QT_VERSION_MAJOR@_FARSTREAM_INSTALL_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@") endif() - set(TELEPATHY_QT@QT_VERSION_MAJOR@_FARSTREAM_INCLUDE_DIR "@TELEPATHY_QT_INCLUDE_DIR@") - set(TELEPATHY_QT@QT_VERSION_MAJOR@_FARSTREAM_LIB_DIR "@TELEPATHY_QT_LIB_DIR@") - set(TELEPATHY_QT@QT_VERSION_MAJOR@_FARSTREAM_SHARE_DIR "@TELEPATHY_QT_DATA_DIR@") + set_and_check(TELEPATHY_QT@QT_VERSION_MAJOR@_FARSTREAM_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@/telepathy-qt@QT_VERSION_MAJOR@") + set_and_check(TELEPATHY_QT@QT_VERSION_MAJOR@_FARSTREAM_LIB_DIR "@PACKAGE_LIB_INSTALL_DIR@") + set_and_check(TELEPATHY_QT@QT_VERSION_MAJOR@_FARSTREAM_SHARE_DIR "@PACKAGE_DATA_INSTALL_DIR@") find_package(TelepathyQt@QT_VERSION_MAJOR@ REQUIRED) diff --git a/TelepathyQt/TelepathyQtConfig.cmake.in b/TelepathyQt/TelepathyQtConfig.cmake.in index 59ed466a..7ceccb74 100644 --- a/TelepathyQt/TelepathyQtConfig.cmake.in +++ b/TelepathyQt/TelepathyQtConfig.cmake.in @@ -2,6 +2,9 @@ # Any changed value in this file will be overwritten by CMake. if(NOT TelepathyQt@QT_VERSION_MAJOR@_FOUND) + + @PACKAGE_INIT@ + # set the version number set(TELEPATHY_QT@QT_VERSION_MAJOR@_VERSION_MAJOR @TP_QT_MAJOR_VERSION@) set(TELEPATHY_QT@QT_VERSION_MAJOR@_VERSION_MINOR @TP_QT_MINOR_VERSION@) @@ -11,12 +14,12 @@ if(NOT TelepathyQt@QT_VERSION_MAJOR@_FOUND) # set the directories if(NOT TELEPATHY_QT@QT_VERSION_MAJOR@_INSTALL_DIR) - set(TELEPATHY_QT@QT_VERSION_MAJOR@_INSTALL_DIR "@CMAKE_INSTALL_PREFIX@") + set_and_check(TELEPATHY_QT@QT_VERSION_MAJOR@_INSTALL_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@") endif() - set(TELEPATHY_QT@QT_VERSION_MAJOR@_INCLUDE_DIR "@TELEPATHY_QT_INCLUDE_DIR@") - set(TELEPATHY_QT@QT_VERSION_MAJOR@_LIB_DIR "@TELEPATHY_QT_LIB_DIR@") - set(TELEPATHY_QT@QT_VERSION_MAJOR@_SHARE_DIR "@TELEPATHY_QT_DATA_DIR@") + set_and_check(TELEPATHY_QT@QT_VERSION_MAJOR@_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@/telepathy-qt@QT_VERSION_MAJOR@") + set_and_check(TELEPATHY_QT@QT_VERSION_MAJOR@_LIB_DIR "@PACKAGE_LIB_INSTALL_DIR@") + set_and_check(TELEPATHY_QT@QT_VERSION_MAJOR@_SHARE_DIR "@PACKAGE_DATA_INSTALL_DIR@") # attempt to find the generated TelepathyQt4Targets.cmake in the same directory get_filename_component(_TPQT@QT_VERSION_MAJOR@_CONFIG_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) diff --git a/TelepathyQt/TelepathyQtServiceConfig.cmake.in b/TelepathyQt/TelepathyQtServiceConfig.cmake.in index 3ee9b150..b128e414 100644 --- a/TelepathyQt/TelepathyQtServiceConfig.cmake.in +++ b/TelepathyQt/TelepathyQtServiceConfig.cmake.in @@ -1,6 +1,8 @@ # TelepathyQt@QT_VERSION_MAJOR@ServiceConfig.cmake is generated by CMake from TelepathyQt/TelepathyQtServiceConfig.cmake.in. # Any changed value in this file will be overwritten by CMake. +@PACKAGE_INIT@ + # set the version number set(TELEPATHY_QT@QT_VERSION_MAJOR@_SERVICE_VERSION_MAJOR @TP_QT_MAJOR_VERSION@) set(TELEPATHY_QT@QT_VERSION_MAJOR@_SERVICE_VERSION_MINOR @TP_QT_MINOR_VERSION@) @@ -10,12 +12,12 @@ set(TELEPATHY_QT@QT_VERSION_MAJOR@_SERVICE_VERSION @PACKAGE_VERSION@) # set the directories if(NOT TELEPATHY_QT@QT_VERSION_MAJOR@_SERVICE_INSTALL_DIR) - set(TELEPATHY_QT@QT_VERSION_MAJOR@_SERVICE_INSTALL_DIR "@CMAKE_INSTALL_PREFIX@") + set_and_check(TELEPATHY_QT@QT_VERSION_MAJOR@_SERVICE_INSTALL_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@") endif() -set(TELEPATHY_QT@QT_VERSION_MAJOR@_SERVICE_INCLUDE_DIR "@TELEPATHY_QT_INCLUDE_DIR@") -set(TELEPATHY_QT@QT_VERSION_MAJOR@_SERVICE_LIB_DIR "@TELEPATHY_QT_LIB_DIR@") -set(TELEPATHY_QT@QT_VERSION_MAJOR@_SERVICE_SHARE_DIR "@TELEPATHY_QT_DATA_DIR@") +set_and_check(TELEPATHY_QT@QT_VERSION_MAJOR@_SERVICE_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@/telepathy-qt@QT_VERSION_MAJOR@") +set_and_check(TELEPATHY_QT@QT_VERSION_MAJOR@_SERVICE_LIB_DIR "@PACKAGE_LIB_INSTALL_DIR@") +set_and_check(TELEPATHY_QT@QT_VERSION_MAJOR@_SERVICE_SHARE_DIR "@PACKAGE_DATA_INSTALL_DIR@") find_package(TelepathyQt@QT_VERSION_MAJOR@ REQUIRED) diff --git a/cmake/modules/BasicFindPackageVersion.cmake.in b/cmake/modules/BasicFindPackageVersion.cmake.in deleted file mode 100644 index 284bee98..00000000 --- a/cmake/modules/BasicFindPackageVersion.cmake.in +++ /dev/null @@ -1,30 +0,0 @@ -# This is a very basic file for the new style find_package() search mode, -# i.e. Config-mode. It is used by MACRO_WRITE_BASIC_CMAKE_VERSION_FILE() from -# MacroWriteBasicCMakeVersionFile.cmake. -# In this mode find_package() searches for a <package>Config.cmake -# file and an associated <package>Version.cmake file, which it loads to check -# the version number. -# This file can be used with configure_file() to generate such a file for a project -# with very basic logic. -# It sets PACKAGE_VERSION_EXACT if the current version string and the requested -# version string are exactly the same and it sets PACKAGE_VERSION_COMPATIBLE -# if the current version is >= requested version. -# If this is not good enough for your project, you need to write your own -# improved <package>Version.cmake file. -# This file requires the following three variables to be set: -# PROJECT_VERSION_MAJOR -# PROJECT_VERSION_MINOR -# PROJECT_VERSION_PATCH - - -set(PACKAGE_VERSION @PROJECT_VERSION_FULL@) - -if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" ) - set(PACKAGE_VERSION_COMPATIBLE FALSE) -else() - set(PACKAGE_VERSION_COMPATIBLE TRUE) - if( "${PACKAGE_FIND_VERSION}" STREQUAL "${PACKAGE_VERSION}") - set(PACKAGE_VERSION_EXACT TRUE) - endif() -endif() - diff --git a/cmake/modules/MacroWriteBasicCMakeVersionFile.cmake b/cmake/modules/MacroWriteBasicCMakeVersionFile.cmake deleted file mode 100644 index c0d50d5e..00000000 --- a/cmake/modules/MacroWriteBasicCMakeVersionFile.cmake +++ /dev/null @@ -1,21 +0,0 @@ -# MACRO_WRITE_BASIC_CMAKE_VERSION_FILE( _filename _major _minor _patch) -# Writes a file for use as <package>ConfigVersion.cmake file to <_filename>. -# See the documentation of FIND_PACKAGE() for details on this. -# _filename is the output filename, it should be in the build tree. -# _major is the major version number of the project to be installed -# _minor is the minor version number of the project to be installed -# _patch is the patch version number of the project to be installed -# - -# Copyright (c) 2008, Alexander Neundorf, <neundorf@kde.org> -# Copyright (c) 2010, Collabora Ltd., <http://www.collabora.co.uk/> -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - -get_filename_component(_currentListFileDir ${CMAKE_CURRENT_LIST_FILE} PATH) - -function(MACRO_WRITE_BASIC_CMAKE_VERSION_FILE _filename _version) - set(PROJECT_VERSION_FULL ${_version}) - configure_file(${_currentListFileDir}/BasicFindPackageVersion.cmake.in "${_filename}" @ONLY) -endfunction() |