diff options
author | vrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb> | 2015-10-06 13:44:03 +0000 |
---|---|---|
committer | vrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb> | 2015-10-06 13:44:03 +0000 |
commit | 2e582f5a617ed7a4faaafa8930ae7291146a4543 (patch) | |
tree | 16c123d4f281e000d3a780bf0d0ae560f3cb6731 | |
parent | 17d191b4990aa182c7e2c9daa53e513e3ebc045f (diff) |
GUDHIConfig.cmake and GUDHIVersion.cmake generation
generate_version.sh modification to take into account these new files
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/trunk@830 636b058d-ea47-450e-bf9e-a15bfbe3eedb
Former-commit-id: 54d3d4f963fb29c9a142be1c28458ce05215ec79
-rw-r--r-- | CMakeGUDHIVersion.txt | 6 | ||||
-rw-r--r-- | CMakeLists.txt | 4 | ||||
-rw-r--r-- | GUDHIVersion.cmake.in | 1 | ||||
-rw-r--r-- | Version.txt | 1 | ||||
-rwxr-xr-x | scripts/generate_version.sh | 6 | ||||
-rw-r--r-- | src/CMakeLists.txt | 72 | ||||
-rw-r--r-- | src/GUDHIConfig.cmake.in | 15 |
7 files changed, 93 insertions, 12 deletions
diff --git a/CMakeGUDHIVersion.txt b/CMakeGUDHIVersion.txt new file mode 100644 index 00000000..19d10535 --- /dev/null +++ b/CMakeGUDHIVersion.txt @@ -0,0 +1,6 @@ +set (GUDHI_MAJOR_VERSION 1) +set (GUDHI_MINOR_VERSION 2) +set (GUDHI_PATCH_VERSION 0) +set(GUDHI_VERSION ${GUDHI_MAJOR_VERSION}.${GUDHI_MINOR_VERSION}.${GUDHI_PATCH_VERSION}) + +message(STATUS "GUDHI version : ${GUDHI_VERSION}") diff --git a/CMakeLists.txt b/CMakeLists.txt index 6bea06e2..91030185 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,10 @@ cmake_minimum_required(VERSION 2.6) project(GUDHIdev) +include(CMakeGUDHIVersion.txt) +# Generate GUDHI official version file +configure_file(GUDHIVersion.cmake.in "${PROJECT_BINARY_DIR}/GUDHIVersion.cmake" @ONLY) + find_package(Boost REQUIRED COMPONENTS system filesystem unit_test_framework chrono timer program_options thread REQUIRED) set(CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}/src/cmake/modules/") diff --git a/GUDHIVersion.cmake.in b/GUDHIVersion.cmake.in new file mode 100644 index 00000000..2f433c1c --- /dev/null +++ b/GUDHIVersion.cmake.in @@ -0,0 +1 @@ +@GUDHI_VERSION@ diff --git a/Version.txt b/Version.txt deleted file mode 100644 index 9084fa2f..00000000 --- a/Version.txt +++ /dev/null @@ -1 +0,0 @@ -1.1.0 diff --git a/scripts/generate_version.sh b/scripts/generate_version.sh index e7575282..b1657754 100755 --- a/scripts/generate_version.sh +++ b/scripts/generate_version.sh @@ -4,12 +4,13 @@ #usage bash generate_version.sh -f DIR : generate even if svn is empty and save library in dir # # 23/06/2015 - Remove source, add biblio, and doc +# 06/10/2015 - Replace static Version.txt with generated GUDHIVersion.cmake file # VERSION CHECK ROOT_DIR=.. -VERSION_FILE="$ROOT_DIR/Version.txt" +VERSION_FILE="$ROOT_DIR/GUDHIVersion.cmake" if [ ! -f $VERSION_FILE ]; then - echo "File not found! : $VERSION_FILE" + echo "File not found! : $VERSION_FILE - Please launch cmake first to generate file" exit 1 fi @@ -44,6 +45,7 @@ mkdir "$VERSION_DIR" # TOP LEVEL FILE COPY cp $VERSION_FILE $VERSION_DIR +cp $ROOT_DIR/CMakeGUDHIVersion.txt $VERSION_DIR cp $ROOT_DIR/README $VERSION_DIR cp $ROOT_DIR/Conventions.txt $VERSION_DIR cp $ROOT_DIR/COPYING $VERSION_DIR diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3e21870f..e8297aa8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,16 +1,12 @@ cmake_minimum_required(VERSION 2.6) project(GUDHI) -# Do not forget to version number. -set (GUDHI_MAJOR_VERSION 1) -set (GUDHI_MINOR_VERSION 2) -set (GUDHI_PATCH_VERSION 0) +include("CMakeGUDHIVersion.txt") list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules/") find_package(Boost REQUIRED COMPONENTS system filesystem program_options chrono timer REQUIRED) - if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") endif() @@ -40,9 +36,35 @@ else() add_definitions(-DBOOST_ALL_NO_LIB) INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) - LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) - include_directories(include/) - + LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) + + #--------------------------------------------------------------------------------------- + # GUDHIConfig.cmake 1st part + + # Offer the user the choice of overriding the installation directories - i.e. "cmake -DGUDHI_DIR=~/gudhi/GUDHI_1.2.0 ." + set(INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries") + set(INSTALL_BIN_DIR bin CACHE PATH "Installation directory for executables") + set(INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files") + if(WIN32 AND NOT CYGWIN) + set(DEF_INSTALL_CMAKE_DIR CMake) + else() + set(DEF_INSTALL_CMAKE_DIR lib/CMake/GUDHI) + 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() + #--------------------------------------------------------------------------------------- + + #--------------------------------------------------------------------------------------- + # Gudhi compilation part + include_directories(include) + add_subdirectory(example/Simplex_tree) add_subdirectory(example/Persistent_cohomology) add_subdirectory(example/Skeleton_blocker) @@ -55,7 +77,39 @@ else() # data points generator add_subdirectory(data/points/generator) + #--------------------------------------------------------------------------------------- + + #--------------------------------------------------------------------------------------- + # GUDHIConfig.cmake 2nd part + # Export the package for use from the build-tree + # (this registers the build-tree with a global CMake-registry) + export(PACKAGE GUDHI) + + # Create the GUDHIConfig.cmake and GUDHIConfigVersion files + file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${INSTALL_INCLUDE_DIR}") + # ... for the build tree + set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/include" "${PROJECT_BINARY_DIR}/include") + configure_file(GUDHIConfig.cmake.in "${PROJECT_BINARY_DIR}/GUDHIConfig.cmake" @ONLY) + # ... for the install tree + set(CONF_INCLUDE_DIRS "\${GUDHI_CMAKE_DIR}/${REL_INCLUDE_DIR}") + configure_file(GUDHIConfig.cmake.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/GUDHIConfig.cmake" @ONLY) + # ... for both + configure_file(GUDHIConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/GUDHIConfigVersion.cmake" @ONLY) + + configure_file(GUDHIVersion.cmake.in "${PROJECT_BINARY_DIR}/GUDHIVersion.cmake" @ONLY) + + # Install the GUDHIConfig.cmake and GUDHIConfigVersion.cmake + install(FILES + "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/GUDHIConfig.cmake" + "${PROJECT_BINARY_DIR}/GUDHIConfigVersion.cmake" + DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev) + #--------------------------------------------------------------------------------------- + + #--------------------------------------------------------------------------------------- + # Gudhi installation part - install (DIRECTORY include/gudhi DESTINATION include) + # install the include file on "make install" + install(DIRECTORY include/gudhi DESTINATION include) + #--------------------------------------------------------------------------------------- endif() diff --git a/src/GUDHIConfig.cmake.in b/src/GUDHIConfig.cmake.in new file mode 100644 index 00000000..83aa61e7 --- /dev/null +++ b/src/GUDHIConfig.cmake.in @@ -0,0 +1,15 @@ +# - Config file for the GUDHI package +# It defines the following variables +# GUDHI_INCLUDE_DIRS - include directories for GUDHI +# GUDHI_LIBRARIES - libraries to link against +# GUDHI_EXECUTABLE - the executables + +# Compute paths +get_filename_component(GUDHI_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +set(GUDHI_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@") + +# Our library dependencies (contains definitions for IMPORTED targets) +include("${GUDHI_CMAKE_DIR}/GUDHITargets.cmake") + +# These are IMPORTED targets created by GUDHITargets.cmake +set(GUDHI_EXECUTABLE mini_simplex_tree) |