CMakeLists.txt cmake/modules
Christian Mollekopf
mollekopf at kolabsys.com
Thu Jul 11 18:38:05 CEST 2013
CMakeLists.txt | 15 +++++++++++++--
cmake/modules/LibkolabConfig.cmake.in | 12 +++++-------
2 files changed, 18 insertions(+), 9 deletions(-)
New commits:
commit 084987d42d837922bc71bd6810ed89f63a36513a
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date: Thu Jul 11 18:26:45 2013 +0200
Deal with relative as well as absolute install paths.
Bug: 2001
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9ae512c..ae6c684 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -44,6 +44,14 @@ set(INCLUDE_INSTALL_DIR include CACHE STRING "The directory where to install hea
set(INCLUDE_INSTALL_DIR ${INCLUDE_INSTALL_DIR}/kolab)
set(CMAKECONFIG_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/Libkolab )
+# 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()
+
include(MacroLogFeature)
# Do the building
@@ -177,9 +185,12 @@ install(FILES
DESTINATION ${INCLUDE_INSTALL_DIR}
)
-install(EXPORT LibkolabExport DESTINATION ${CMAKECONFIG_INSTALL_DIR} FILE LibkolabTargets.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 LibkolabConfig.cmake, which will be installed in CMAKECONFIG_INSTALL_DIR
+set(CONF_INCLUDE_DIRS "\${Libkolab_CMAKE_DIR}/${REL_INCLUDE_DIR}")
-file(RELATIVE_PATH relInstallDir ${CMAKE_INSTALL_PREFIX}/${CMAKECONFIG_INSTALL_DIR} ${CMAKE_INSTALL_PREFIX} )
+install(EXPORT LibkolabExport DESTINATION ${CMAKECONFIG_INSTALL_DIR} FILE LibkolabTargets.cmake )
configure_file(${Libkolab_MODULE_DIR}/LibkolabConfig.cmake.in ${Libkolab_BINARY_DIR}/LibkolabConfig.cmake @ONLY )
configure_file(${Libkolab_MODULE_DIR}/LibkolabConfigVersion.cmake.in ${Libkolab_BINARY_DIR}/LibkolabConfigVersion.cmake @ONLY )
diff --git a/cmake/modules/LibkolabConfig.cmake.in b/cmake/modules/LibkolabConfig.cmake.in
index cf0555b..f80e6e2 100644
--- a/cmake/modules/LibkolabConfig.cmake.in
+++ b/cmake/modules/LibkolabConfig.cmake.in
@@ -1,18 +1,16 @@
-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(Libkolab_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(Libkolab_VERSION_MAJOR @Libkolab_VERSION_MAJOR@)
set(Libkolab_VERSION_MINOR @Libkolab_VERSION_MINOR@)
set(Libkolab_VERSION_PATCH @Libkolab_VERSION_PATCH@)
set(Libkolab_VERSION ${Libkolab_VERSION_MAJOR}.${Libkolab_VERSION_MINOR}.${Libkolab_VERSION_PATCH} )
-# what is my include directory
-set(Libkolab_INSTALL_PREFIX "${rootDir}")
-set(Libkolab_INCLUDES "${rootDir}/@INCLUDE_INSTALL_DIR@")
+# Set the include directory
+set(Libkolab_INCLUDES "@CONF_INCLUDE_DIRS@")
# import the exported targets
-include(${myDir}/LibkolabTargets.cmake)
+include(${Libkolab_CMAKE_DIR}/LibkolabTargets.cmake)
# set the expected library variable
set(Libkolab_LIBRARIES kolab )
More information about the commits
mailing list