diff options
author | Ralf Habacker <ralf.habacker@freenet.de> | 2017-02-07 12:03:33 +0100 |
---|---|---|
committer | Ralf Habacker <ralf.habacker@freenet.de> | 2017-02-07 12:03:33 +0100 |
commit | 2e2eda07cfb73d2a71abd9b9e990f853ccce6e6c (patch) | |
tree | 8d1a43110e3046b310d6c392f6b721d4bf81e9bf | |
parent | 1dc3af66dfd437f1e64f18e02424b0d8547df9fe (diff) | |
download | dbus-cmake-config-find-package-support.tar.gz |
Add find package config support.cmake-config-find-package-support
-rw-r--r-- | cmake/CMakeLists.txt | 35 | ||||
-rw-r--r-- | cmake/DBusConfig.cmake.in | 18 | ||||
-rw-r--r-- | cmake/DBusConfigVersion.cmake.in | 11 |
3 files changed, 62 insertions, 2 deletions
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 2c397d29..2d433061 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -97,9 +97,9 @@ set(DBUS_DATADIR ${EXPANDED_DATADIR}) SET(BUILD_SHARED_LIBS ON) if(WIN32) - set(INSTALL_TARGETS_DEFAULT_ARGS RUNTIME DESTINATION "bin" LIBRARY DESTINATION "lib" ARCHIVE DESTINATION "lib") + set(INSTALL_TARGETS_DEFAULT_ARGS EXPORT DBusTargets RUNTIME DESTINATION "bin" LIBRARY DESTINATION "lib" ARCHIVE DESTINATION "lib") else() - set(INSTALL_TARGETS_DEFAULT_ARGS RUNTIME DESTINATION "${EXPANDED_LIBDIR}" LIBRARY DESTINATION "${EXPANDED_LIBDIR}" ARCHIVE DESTINATION "${EXPANDED_LIBDIR}") + set(INSTALL_TARGETS_DEFAULT_ARGS EXPORT DBusTargets RUNTIME DESTINATION "${EXPANDED_LIBDIR}" LIBRARY DESTINATION "${EXPANDED_LIBDIR}" ARCHIVE DESTINATION "${EXPANDED_LIBDIR}") endif() if (CYGWIN) @@ -635,3 +635,34 @@ add_custom_target(help-options cmake -LH WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) + +# +# create cmake find_package support +# +if(WIN32 AND NOT CYGWIN) + set(DEF_INSTALL_CMAKE_DIR CMake) +else() + set(DEF_INSTALL_CMAKE_DIR lib/CMake/DBus) +endif() +set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files") + +# Make relative paths absolute (needed later on) +foreach(p LIB BIN INCLUDE CMAKE) + set(var INSTALL_${p}_DIR) + if(NOT IS_ABSOLUTE "${${var}}") + set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") + endif() +endforeach() + +file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${INSTALL_INCLUDE_DIR}") +set(CONF_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}") +configure_file(DBusConfig.cmake.in "${CMAKE_BINARY_DIR}/DBusConfig.cmake" @ONLY) +set(CONF_INCLUDE_DIRS "\${FOOBAR_CMAKE_DIR}/${REL_INCLUDE_DIR}") +configure_file(DBusConfig.cmake.in "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/DBusConfig.cmake" @ONLY) +configure_file(DBusConfigVersion.cmake.in "${CMAKE_BINARY_DIR}/DBusConfigVersion.cmake" @ONLY) +install(FILES + "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/DBusConfig.cmake" + "${CMAKE_BINARY_DIR}/DBusConfigVersion.cmake" + DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev +) +install(EXPORT DBusTargets DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev) diff --git a/cmake/DBusConfig.cmake.in b/cmake/DBusConfig.cmake.in new file mode 100644 index 00000000..23428db7 --- /dev/null +++ b/cmake/DBusConfig.cmake.in @@ -0,0 +1,18 @@ +# - Config file for the FooBar package +# It defines the following variables +# DBUS_INCLUDE_DIRS - include directories for FooBar +# DBUS_LIBRARIES - libraries to link against +# DBUS_EXECUTABLE - the bar executable + +# Compute paths +get_filename_component(DBUS1_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +set(DBUS_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@") + +# Our library dependencies (contains definitions for IMPORTED targets) +if(NOT TARGET dbus AND NOT CMAKE_BINARY_DIR) + include("${DBUS_CMAKE_DIR}/DBusTargets.cmake") +endif() + +# These are IMPORTED targets created by FooBarTargets.cmake +set(DBUS_LIBRARIES dbus-1) +set(DBUS_EXECUTABLE dbus-daemon) diff --git a/cmake/DBusConfigVersion.cmake.in b/cmake/DBusConfigVersion.cmake.in new file mode 100644 index 00000000..8c7b6eaf --- /dev/null +++ b/cmake/DBusConfigVersion.cmake.in @@ -0,0 +1,11 @@ +set(PACKAGE_VERSION "@DBUS_VERSION_STRING@") + +# Check whether the requested PACKAGE_FIND_VERSION is compatible +if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() |