Adds CMake package version file generation

This allows clients to specify a minimum CGAL version in their CMake list files.
Eg.:

    find_package(CGAL 4.9)

More info: https://cmake.org/cmake/help/v3.6/manual/cmake-packages.7.html#package-version-file
This commit is contained in:
Thiago M. de C. Marques 2016-09-08 21:14:20 -03:00
parent 20b07e04e7
commit a24dd7dd1c
2 changed files with 13 additions and 1 deletions

View File

@ -891,7 +891,10 @@ if ( ZLIB_IN_AUXILIARY )
endif()
install(FILES ${CMAKE_BINARY_DIR}/config/CGALConfig.cmake DESTINATION ${CGAL_INSTALL_CMAKE_DIR} )
install(FILES
${CMAKE_BINARY_DIR}/config/CGALConfig.cmake
${CMAKE_BINARY_DIR}/config/CGALConfigVersion.cmake
DESTINATION ${CGAL_INSTALL_CMAKE_DIR} )
if(CGAL_INSTALL_MAN_DIR)
install(FILES auxiliary/cgal_create_cmake_script.1 DESTINATION ${CGAL_INSTALL_MAN_DIR} )

View File

@ -411,11 +411,20 @@ if( NOT CGAL_MACROS_FILE_INCLUDED )
macro( create_CGALconfig_files )
include(CMakePackageConfigHelpers)
# CGALConfig.cmake is platform specific so it is generated and stored in the binary folder.
configure_file("${CGAL_MODULES_DIR}/CGALConfig_binary.cmake.in" "${CMAKE_BINARY_DIR}/CGALConfig.cmake" @ONLY)
write_basic_package_version_file("${CMAKE_BINARY_DIR}/CGALConfigVersion.cmake"
VERSION "${CGAL_MAJOR_VERSION}.${CGAL_MINOR_VERSION}.${CGAL_BUILD_VERSION}"
COMPATIBILITY AnyNewerVersion)
# There is also a version of CGALConfig.cmake that is prepared in case CGAL in installed in CMAKE_INSTALL_PREFIX.
configure_file("${CGAL_MODULES_DIR}/CGALConfig_install.cmake.in" "${CMAKE_BINARY_DIR}/config/CGALConfig.cmake" @ONLY)
configure_file(
"${CMAKE_BINARY_DIR}/CGALConfigVersion.cmake"
"${CMAKE_BINARY_DIR}/config/CGALConfigVersion.cmake"
COPYONLY)
#write prefix exceptions
file( APPEND ${CMAKE_BINARY_DIR}/CGALConfig.cmake "${SPECIAL_PREFIXES}\n")