# CMake script for Bio++ Phylo(gen)-Omics library # Authors: # Sylvain Gaillard # Julien Dutheil # Francois Gindraud (2017) # Created: 30/07/2012 cmake_minimum_required (VERSION 2.8.11) project (bpp-phyl-omics CXX) # Compile options #set (CMAKE_CXX_FLAGS "-std=c++11 -g") IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE) ENDIF(NOT CMAKE_BUILD_TYPE) IF(NOT NO_DEP_CHECK) SET(NO_DEP_CHECK FALSE CACHE BOOL "Disable dependencies check for building distribution only." FORCE) ENDIF(NOT NO_DEP_CHECK) IF(NO_DEP_CHECK) MESSAGE("-- Dependencies checking disabled. Only distribution can be built.") ELSE(NO_DEP_CHECK) # Libtool-like version number # CURRENT:REVISION:AGE => file.so.(C-A).A.R # current: The most recent interface number that this library implements. # revision: The implementation number of the current interface. # age: The difference between the newest and oldest interfaces that this # library implements. # In other words, the library implements all the interface numbers in the # range from number current - age to current. SET(${PROJECT_NAME}_VERSION_CURRENT "3") SET(${PROJECT_NAME}_VERSION_REVISION "0") SET(${PROJECT_NAME}_VERSION_AGE "0") # Effective version number computation math(EXPR ${PROJECT_NAME}_VERSION_MAJOR "${${PROJECT_NAME}_VERSION_CURRENT} - ${${PROJECT_NAME}_VERSION_AGE}") SET(${PROJECT_NAME}_VERSION_MINOR ${${PROJECT_NAME}_VERSION_AGE}) SET(${PROJECT_NAME}_VERSION_PATCH ${${PROJECT_NAME}_VERSION_REVISION}) SET(${PROJECT_NAME}_VERSION "${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}.${${PROJECT_NAME}_VERSION_PATCH}") set (PROJECT_VERSION ${${PROJECT_NAME}_VERSION}) # Find dependencies (add install directory to search) if (CMAKE_INSTALL_PREFIX) set (CMAKE_PREFIX_PATH "${CMAKE_INSTALL_PREFIX}" ${CMAKE_PREFIX_PATH}) endif (CMAKE_INSTALL_PREFIX) include (GNUInstallDirs) find_package (bpp-seq-omics 3.0.0 REQUIRED) find_package (bpp-phyl 12.0.0 REQUIRED) # CMake package set (cmake-package-location ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) include (CMakePackageConfigHelpers) configure_package_config_file ( package.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/package.cmake INSTALL_DESTINATION ${cmake-package-location} ) write_basic_package_version_file ( ${CMAKE_CURRENT_BINARY_DIR}/package-version.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) install (FILES ${CMAKE_CURRENT_BINARY_DIR}/package.cmake DESTINATION ${cmake-package-location} RENAME ${PROJECT_NAME}-config.cmake) install (FILES ${CMAKE_CURRENT_BINARY_DIR}/package-version.cmake DESTINATION ${cmake-package-location} RENAME ${PROJECT_NAME}-config-version.cmake) # Define the libraries add_subdirectory (src) # Doxygen FIND_PACKAGE(Doxygen) IF (DOXYGEN_FOUND) ADD_CUSTOM_TARGET (apidoc cp Doxyfile ${CMAKE_BINARY_DIR}/Doxyfile-build COMMAND echo "OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}" >> ${CMAKE_BINARY_DIR}/Doxyfile-build COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/Doxyfile-build WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) ADD_CUSTOM_TARGET (apidoc-stable cp Doxyfile ${CMAKE_BINARY_DIR}/Doxyfile-stable COMMAND echo "OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}" >> ${CMAKE_BINARY_DIR}/Doxyfile-stable COMMAND echo "HTML_HEADER=header.html" >> ${CMAKE_BINARY_DIR}/Doxyfile-stable COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/Doxyfile-stable WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) ENDIF (DOXYGEN_FOUND) ENDIF(NO_DEP_CHECK) # Packager SET(CPACK_PACKAGE_NAME "libbpp-phyl-omics") SET(CPACK_PACKAGE_VENDOR "Bio++ Development Team") SET(CPACK_PACKAGE_VERSION "2.4.1") SET(CPACK_PACKAGE_VERSION_MAJOR "2") SET(CPACK_PACKAGE_VERSION_MINOR "4") SET(CPACK_PACKAGE_VERSION_PATCH "1") SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The Bio++ Phylogen-Omics library") SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING.txt") SET(CPACK_RESOURCE_FILE_AUTHORS "${CMAKE_SOURCE_DIR}/AUTHORS.txt") SET(CPACK_RESOURCE_FILE_INSTALL "${CMAKE_SOURCE_DIR}/INSTALL.txt") SET(CPACK_SOURCE_GENERATOR "TGZ") # /!\ This assumes that an external build is used SET(CPACK_SOURCE_IGNORE_FILES "/build/" "/html/" "/BppPhylOmics.tag" "/\\\\.git/" "/\\\\.gitignore" ${CPACK_SOURCE_IGNORE_FILES} ) SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") SET(CPACK_DEBSOURCE_PACKAGE_FILE_NAME "lib${CMAKE_PROJECT_NAME}_${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.orig") INCLUDE(CPack) #This adds the 'dist' target ADD_CUSTOM_TARGET(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source) IF(NOT NO_DEP_CHECK) IF (UNIX) #This creates rpm packages: ADD_CUSTOM_TARGET(rpm rpmbuild -ta ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.gz) ADD_DEPENDENCIES(rpm dist) ENDIF() ENDIF(NOT NO_DEP_CHECK)