summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TelepathyQt/CMakeLists.txt48
-rw-r--r--TelepathyQt/Farstream/CMakeLists.txt19
-rw-r--r--TelepathyQt/Farstream/TelepathyQtFarstreamConfig.cmake.in11
-rw-r--r--TelepathyQt/TelepathyQtConfig.cmake.in11
-rw-r--r--TelepathyQt/TelepathyQtServiceConfig.cmake.in10
-rw-r--r--cmake/modules/BasicFindPackageVersion.cmake.in30
-rw-r--r--cmake/modules/MacroWriteBasicCMakeVersionFile.cmake21
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()