CMakeLists.txt 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
  2. PROJECT(malariaspread CXX C)
  3. SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
  4. ENABLE_TESTING()
  5. SET(MODEL_MAJOR 0)
  6. SET(MODEL_MINOR 1)
  7. SET(MODEL_PATCH 0)
  8. SET(MODEL_NAME "${PROJECT_NAME}-${MODEL_MAJOR}.${MODEL_MINOR}.${MODEL_PATCH}")
  9. SET(VLE_NAME "${PROJECT_NAME}-${MODEL_MAJOR}.${MODEL_MINOR}")
  10. ##
  11. ## Options for compilation of package
  12. ##
  13. OPTION(WITH_TEST "will build the test [default: ON]" ON)
  14. OPTION(WITH_DOC "will compile doc and install it [default: OFF]" OFF)
  15. OPTION(WITH_WARNINGS "will compile with g++ warnings [default: ON]" ON)
  16. if (CMAKE_BUILD_TYPE STREQUAL "")
  17. SET(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build" FORCE)
  18. endif ()
  19. if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_IS_GNUCXX)
  20. if (NOT WITH_WARNINGS)
  21. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
  22. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
  23. else (NOT WITH_WARNINGS)
  24. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra")
  25. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
  26. endif (NOT WITH_WARNINGS)
  27. if ("${CMAKE_BUILD_TYPE}" EQUAL "Debug" OR "${CMAKE_BUILD_TYPE}" EQUAL "RelWithDebInfo")
  28. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ggdb3")
  29. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb3")
  30. endif ()
  31. endif ()
  32. ##
  33. ## Modules
  34. ##
  35. INCLUDE(CheckIncludeFileCXX)
  36. INCLUDE(CheckIncludeFile)
  37. INCLUDE(CheckLibraryExists)
  38. INCLUDE(CMakeDetermineCCompiler)
  39. ##
  40. ## Check VLE and package dependencies
  41. ##
  42. set(VLE_DEBUG 0)
  43. set(VLE_ABI_VERSION 1.2)
  44. find_package(VLE REQUIRED)
  45. set (VleUtils_DIR "${CMAKE_SOURCE_DIR}/cmake")
  46. find_package(VleUtils REQUIRED)
  47. VleCheckDependencies()
  48. ##
  49. ## Find boost
  50. ##
  51. set(Boost_USE_STATIC_LIBS OFF)
  52. set(Boost_USE_MULTITHREAD ON)
  53. find_package(Boost COMPONENTS unit_test_framework date_time)
  54. ##
  55. ## Generate the doxygen
  56. ##
  57. FIND_PACKAGE(Doxygen)
  58. IF (DOXYGEN AND WITH_DOC)
  59. SET(DOXYGEN_SOURCE_DIR "${PROJECT_SOURCE_DIR}/src")
  60. SET(DOXYGEN_OUTPUT_MODELING_DIR "${PROJECT_BINARY_DIR}/doxygen/modeling")
  61. SET(DOXYGEN_OUTPUT_SOURCE_DIR "${PROJECT_BINARY_DIR}/doxygen/sources")
  62. CONFIGURE_FILE("cmake/doxygen-modeling.conf.in"
  63. "${PROJECT_BINARY_DIR}/doxygen-modeling.conf")
  64. CONFIGURE_FILE("cmake/doxygen-sources.conf.in"
  65. "${PROJECT_BINARY_DIR}/doxygen-sources.conf")
  66. FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/doxygen")
  67. FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/doxygen/modeling")
  68. FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/doxygen/sources")
  69. ADD_CUSTOM_COMMAND(
  70. OUTPUT "${PROJECT_BINARY_DIR}/doxygen/modeling/index.html"
  71. DEPENDS "${PROJECT_BINARY_DIR}/doxygen-modeling.conf"
  72. COMMAND "${DOXYGEN}"
  73. ARGS "${PROJECT_BINARY_DIR}/doxygen-modeling.conf")
  74. ADD_CUSTOM_COMMAND(
  75. OUTPUT "${PROJECT_BINARY_DIR}/doxygen/sources/index.html"
  76. DEPENDS "${PROJECT_BINARY_DIR}/doxygen-sources.conf"
  77. COMMAND "${DOXYGEN}"
  78. ARGS "${PROJECT_BINARY_DIR}/doxygen-sources.conf")
  79. ADD_CUSTOM_TARGET(doc_modeling ALL DEPENDS
  80. "${PROJECT_BINARY_DIR}/doxygen-modeling.conf"
  81. "${PROJECT_BINARY_DIR}/doxygen/modeling/index.html" VERBATIM)
  82. ADD_CUSTOM_TARGET(doc_sources ALL DEPENDS
  83. "${PROJECT_BINARY_DIR}/doxygen-sources.conf"
  84. "${PROJECT_BINARY_DIR}/doxygen/sources/index.html" VERBATIM)
  85. INSTALL(DIRECTORY "${PROJECT_BINARY_DIR}/doxygen/modeling/html" DESTINATION
  86. "doc/html/modeling")
  87. INSTALL(DIRECTORY "${PROJECT_BINARY_DIR}/doxygen/sources/html" DESTINATION
  88. "doc/html/sources")
  89. ENDIF (DOXYGEN AND WITH_DOC)
  90. ##
  91. ## Subdirectory
  92. ##
  93. add_subdirectory(data)
  94. if (WITH_DOC)
  95. add_subdirectory(doc)
  96. endif ()
  97. add_subdirectory(exp)
  98. add_subdirectory(src)
  99. if (Boost_UNIT_TEST_FRAMEWORK_FOUND AND WITH_TEST)
  100. add_subdirectory(test)
  101. endif (Boost_UNIT_TEST_FRAMEWORK_FOUND AND WITH_TEST)
  102. ##
  103. ## CPack configuration
  104. ##
  105. INSTALL(FILES Authors.txt Description.txt License.txt News.txt Readme.txt
  106. DESTINATION .)
  107. INCLUDE(CMakeCPack.cmake)