123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
- PROJECT(ARTIS_ADDONS CXX C)
- ENABLE_TESTING()
- SET(ARTIS_ADDONS_MAJOR 1)
- SET(ARTIS_ADDONS_MINOR 0)
- SET(ARTIS_ADDONS_PATCH 0)
- SET(ARTIS_ADDONS_EXTRA "-dev")
- SET(ARTIS_ADDONS_VERSION "${ARTIS_ADDONS_MAJOR}.${ARTIS_ADDONS_MINOR}.${ARTIS_ADDONS_PATCH}")
- SET(ARTIS_ADDONS_VERSION_SHORT "${ARTIS_ADDONS_MAJOR}.${ARTIS_ADDONS_MINOR}")
- SET(ARTIS_ADDONS_NAME "artis-addons")
- SET(ARTIS_ADDONS_NAME_VERSION "${ARTIS_ADDONS_NAME}-${ARTIS_ADDONS_VERSION}")
- SET(ARTIS_ADDONS_LOCALE_NAME "${ARTIS_ADDONS_NAME}-${ARTIS_ADDONS_MAJOR}-${ARTIS_ADDONS_MINOR}")
- IF ("${ARTIS_ADDONS_EXTRA}" STREQUAL "")
- SET(ARTIS_ADDONS_COMPLETE "${ARTIS_ADDONS_MAJOR}.${ARTIS_ADDONS_MINOR}.${ARTIS_ADDONS_PATCH}")
- ELSE ("${ARTIS_ADDONS_EXTRA}" STREQUAL "")
- SET(ARTIS_ADDONS_COMPLETE "${ARTIS_ADDONS_MAJOR}.${ARTIS_ADDONS_MINOR}.${ARTIS_ADDONS_PATCH}-${ARTIS_ADDONS_EXTRA}")
- ENDIF ("${ARTIS_ADDONS_EXTRA}" STREQUAL "")
- SET(ARTIS_ADDONS_NAME_COMPLETE "${ARTIS_ADDONS_NAME}-${ARTIS_ADDONS_COMPLETE}")
- #
- # Installation variables
- #
- SET(ARTIS_ADDONS_LIBRARY_DIRS "lib/artis-addons-${ARTIS_ADDONS_VERSION_SHORT}")
- SET(ARTIS_ADDONS_INCLUDE_DIRS "include/artis-addons-${ARTIS_ADDONS_VERSION_SHORT}/artis-addons")
- SET(ARTIS_ADDONS_INCLUDE_DIR "include/artis-addons-${ARTIS_ADDONS_VERSION_SHORT}")
- SET(ARTIS_ADDONS_MANPAGE_PATH "share/man/man1")
- SET(ARTIS_ADDONS_SHARE_DIRS "share/artis-addons-${ARTIS_ADDONS_VERSION_SHORT}")
- #
- # Append the library version information to the library target
- # properties.
- #
- SET (ARTIS_ADDONS_LIBRARY_PROPERTIES VERSION 0)
- #
- # CPack configuration
- #
- INCLUDE(CMakeCPack.cmake)
- #
- # Debug mode
- #
- IF (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR
- ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra")
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--no-as-needed -Wall -Wextra -std=c++11")
- IF (UNIX)
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic")
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic")
- ENDIF (UNIX)
- ENDIF ()
- if (CMAKE_BUILD_TYPE STREQUAL "")
- SET(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of build" FORCE)
- endif ()
- #
- # Thread
- #
- message(STATUS "checking for a (p)thread library")
- find_package(Threads REQUIRED)
- if (NOT Threads_FOUND)
- message(ERROR " failed to found a (p)thread support.")
- else ()
- message(STATUS " threads support enabled (${CMAKE_THREAD_LIBS_INIT})")
- endif ()
- #
- # Modules
- #
- INCLUDE(CheckIncludeFileCXX)
- INCLUDE(CheckIncludeFile)
- INCLUDE(CheckLibraryExists)
- INCLUDE(CMakeDetermineCCompiler)
- #
- # Check libraries with pkgconfig
- #
- FIND_PACKAGE(PkgConfig REQUIRED)
- PKG_CHECK_MODULES(ARTIS REQUIRED artis-star-1.0)
- #
- # Test the libboost header and libboost-text library.
- #
- OPTION(WITH_TEST "use the libboost test unit library [default: on]" ON)
- SET(Boost_USE_MULTITHREADED ON)
- SET(Boost_USE_STATIC_LIBS OFF)
- SET(Boost_NO_SYSTEM_PATHS OFF)
- SET(Boost_USE_STATIC_RUNTIME ON)
- IF (WIN32)
- SET(Boost_THREADAPI "win32")
- ENDIF (WIN32)
- include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR})
- find_package(MPI REQUIRED)
- if (NOT MPI_CXX_FOUND)
- message(ERROR " failed to found a C++ compiler with MPI support.")
- else ()
- message(STATUS " MPI support enabled")
- include_directories(${MPI_CXX_INCLUDE_PATH})
- endif ()
- message(STATUS "checking for Boost headers and libraries")
- find_package(Boost 1.55 REQUIRED COMPONENTS graph mpi timer serialization
- system)
- if (NOT Boost_FOUND)
- MESSAGE(FATAL_ERROR "The boost graph library is required")
- else ()
- message(STATUS " Boost found")
- include_directories(${Boost_INCLUDE_DIRS})
- link_directories(${Boost_LIBRARY_DIRS})
- endif ()
- #
- # Generate the config.h
- #
- CHECK_INCLUDE_FILE_CXX(cxxabi.h ARTIS_HAVE_GCC_ABI_DEMANGLE)
- CHECK_INCLUDE_FILE_CXX(execinfo.h ARTIS_HAVE_EXECINFO)
- CHECK_INCLUDE_FILE_CXX(signal.h ARTIS_HAVE_SIGNAL)
- #
- # Generate the artis.pc pkg-config file.
- #
- SET(ARTIS_ADDONS_PKGCONFIG_PREFIXPATH "${CMAKE_INSTALL_PREFIX}")
- SET(ARTIS_ADDONS_PKGCONFIG_BOOSTINCLUDE_DIRS "${Boost_INCLUDE_DIRS}")
- SET(ARTIS_ADDONS_PKGCONFIG_LIBDIR "lib")
- CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/src/artis-addons.pc.in
- ${ARTIS_ADDONS_BINARY_DIR}/artis-addons-${ARTIS_ADDONS_VERSION_SHORT}.pc @ONLY)
- INSTALL(FILES ${ARTIS_ADDONS_BINARY_DIR}/artis-addons-${ARTIS_ADDONS_VERSION_SHORT}.pc
- DESTINATION lib/pkgconfig)
- #
- # Browse the src subdirectory
- #
- ADD_SUBDIRECTORY(src)
- #
- # Status
- #
- MESSAGE(STATUS "- - - -")
- MESSAGE(STATUS "${ARTIS_ADDONS_NAME} configured successfully")
- MESSAGE(STATUS "Using ${CMAKE_INSTALL_PREFIX} for installation")
- MESSAGE(STATUS "Build type ${CMAKE_BUILD_TYPE}")
- IF (ARTIS_HAVE_GCC_ABI_DEMANGLE)
- MESSAGE(STATUS "Build with GCC ABI Demangle...: yes")
- ENDIF (ARTIS_HAVE_GCC_ABI_DEMANGLE)
- IF (ARTIS_HAVE_EXECINFO)
- MESSAGE(STATUS "Build with execinfo.h.........: yes")
- ENDIF (ARTIS_HAVE_EXECINFO)
- IF (Boost_FOUND)
- MESSAGE(STATUS "Build with boost..............: yes")
- ENDIF (Boost_FOUND)
- MESSAGE(STATUS "- - - -")
|