CMakeLists.txt cmake/modules
Christian Mollekopf
mollekopf at kolabsys.com
Thu Jul 11 18:57:07 CEST 2013
CMakeLists.txt | 15 +++++++++++++--
cmake/modules/LibkolabxmlConfig.cmake.in | 17 ++++++++---------
2 files changed, 21 insertions(+), 11 deletions(-)
New commits:
commit d7d6fcea7ae9b8d9fcd03789a41f57b0c9a88f2f
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date: Thu Jul 11 18:56:24 2013 +0200
Deal with relative as well as absolute install paths.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3256556..c1bd505 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -80,6 +80,14 @@ set(INCLUDE_INSTALL_DIR include CACHE STRING "The directory where to install hea
set(INCLUDE_INSTALL_DIR ${INCLUDE_INSTALL_DIR}/kolabxml)
set(CMAKECONFIG_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/Libkolabxml )
+# Make relative paths absolute (needed later on)
+foreach(p LIB INCLUDE CMAKECONFIG)
+ set(var ${p}_INSTALL_DIR)
+ if(NOT IS_ABSOLUTE "${${var}}")
+ set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}")
+ endif()
+endforeach()
+
configure_file(libkolabxml-version.h.cmake "${CMAKE_BINARY_DIR}/libkolabxml-version.h" @ONLY)
set(Boost_USE_MULTITHREADED ON)
@@ -189,9 +197,12 @@ if (BUILD_TESTS)
add_subdirectory(tests)
endif()
-install(EXPORT LibkolabxmlExport DESTINATION ${CMAKECONFIG_INSTALL_DIR} FILE LibkolabxmlTargets.cmake )
+#Get the include directory relative to CMAKECONFIG_INSTALL_DIR
+file(RELATIVE_PATH REL_INCLUDE_DIR "${CMAKECONFIG_INSTALL_DIR}" "${INCLUDE_INSTALL_DIR}")
+#Assemble the full relative path. This will be used in the LibkolabxmlConfig.cmake, which will be installed in CMAKECONFIG_INSTALL_DIR
+set(CONF_INCLUDE_DIRS "\${Libkolabxml_CMAKE_DIR}/${REL_INCLUDE_DIR}")
-file(RELATIVE_PATH relInstallDir ${CMAKE_INSTALL_PREFIX}/${CMAKECONFIG_INSTALL_DIR} ${CMAKE_INSTALL_PREFIX} )
+install(EXPORT LibkolabxmlExport DESTINATION ${CMAKECONFIG_INSTALL_DIR} FILE LibkolabxmlTargets.cmake )
configure_file(${Libkolabxml_MODULE_DIR}/LibkolabxmlConfig.cmake.in ${Libkolabxml_BINARY_DIR}/LibkolabxmlConfig.cmake @ONLY )
configure_file(${Libkolabxml_MODULE_DIR}/LibkolabxmlConfigVersion.cmake.in ${Libkolabxml_BINARY_DIR}/LibkolabxmlConfigVersion.cmake @ONLY )
diff --git a/cmake/modules/LibkolabxmlConfig.cmake.in b/cmake/modules/LibkolabxmlConfig.cmake.in
index f42726f..40f30a4 100644
--- a/cmake/modules/LibkolabxmlConfig.cmake.in
+++ b/cmake/modules/LibkolabxmlConfig.cmake.in
@@ -1,18 +1,17 @@
-get_filename_component(myDir ${CMAKE_CURRENT_LIST_FILE} PATH) # get the directory where I myself am
-get_filename_component(rootDir ${myDir}/@relInstallDir@ ABSOLUTE) # get the chosen install prefix
+get_filename_component(Libkolabxml_CMAKE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH) #get the directory where this *Config.cmake file is installed
-# set the version of myself
+# set the version
set(Libkolabxml_VERSION_MAJOR @Libkolabxml_VERSION_MAJOR@)
set(Libkolabxml_VERSION_MINOR @Libkolabxml_VERSION_MINOR@)
set(Libkolabxml_VERSION_PATCH @Libkolabxml_VERSION_PATCH@)
-set(Libkolabxml_VERSION ${Libkolabxml_VERSION_MAJOR}.${Libkolabxml_VERSION_MINOR}.${Libkolabxml_VERSION_PATCH} )
+set(Libkolabxml_VERSION ${Libkolabxml_VERSION_MAJOR}.${Libkolabxml_VERSION_MINOR}.${Libkolabxml_VERSION_PATCH})
-# what is my include directory
-set(Libkolabxml_INSTALL_PREFIX "${rootDir}")
-set(Libkolabxml_INCLUDES "${rootDir}/@INCLUDE_INSTALL_DIR@")
+# Set the include directory
+set(Libkolabxml_INCLUDES "@CONF_INCLUDE_DIRS@")
# import the exported targets
-include(${myDir}/LibkolabxmlTargets.cmake)
+include(${Libkolab_CMAKE_DIR}/LibkolabxmlTargets.cmake)
# set the expected library variable
-set(Libkolabxml_LIBRARIES kolabxml )
+set(Libkolabxml_LIBRARIES kolabxml)
+
More information about the commits
mailing list