Guest User

Untitled

a guest
Aug 2nd, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CMake 7.67 KB | None | 0 0
  1. CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
  2. PROJECT(vle.examples CXX C)
  3. ENABLE_TESTING()
  4.  
  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.  
  12. ##
  13. ## Modules
  14. ##
  15.  
  16. INCLUDE(CheckIncludeFileCXX)
  17. INCLUDE(CheckIncludeFile)
  18. INCLUDE(CheckLibraryExists)
  19. INCLUDE(CMakeDetermineCCompiler)
  20.  
  21. ##
  22. ## Check libraries with pkgconfig
  23. ##
  24.  
  25. FIND_PACKAGE(PkgConfig REQUIRED)
  26. PKG_CHECK_MODULES(VLE vle-1.1 REQUIRED)
  27.  
  28.  
  29. ##
  30. ## Check VLE's packages
  31. ##
  32.  
  33. FIND_PACKAGE(VleCheckPackage REQUIRED)
  34.  
  35. #VLE_CHECK_PACKAGE(CELLDEVS vle.extension.celldevs)
  36. #VLE_CHECK_PACKAGE(CELLQSS vle.extension.cellqss)
  37. #VLE_CHECK_PACKAGE(DECISION vle.extension.decision)
  38. #VLE_CHECK_PACKAGE(DIFFERENCE_EQU vle.extension.difference-equation)
  39. VLE_CHECK_PACKAGE(DIFFERENTIAL_EQU vle.extension.differentialEquation)
  40. #VLE_CHECK_PACKAGE(DSDEVS vle.extension.dsdevs)
  41. #VLE_CHECK_PACKAGE(FSA vle.extension.fsa)
  42. #VLE_CHECK_PACKAGE(PETRINET vle.extension.petrinet)
  43.  
  44. #if (NOT CELLDEVS_FOUND)
  45.   #message(SEND_ERROR "Missing vle.extension.celldevs")
  46. #endif (NOT CELLDEVS_FOUND)
  47. #if (NOT CELLQSS_FOUND)
  48.   #message(SEND_ERROR "Missing vle.extension.celldevs")
  49. #endif (NOT CELLQSS_FOUND)
  50. #if (NOT DECISION_FOUND)
  51.   #message(SEND_ERROR "Missing vle.extension.decision")
  52. #endif (NOT DECISION_FOUND)
  53. #if (NOT DIFFERENCE_EQU_FOUND)
  54.   #message(SEND_ERROR "Missing vle.extension.differential-equation")
  55. #endif (NOT DIFFERENCE_EQU_FOUND)
  56. if (NOT DIFFERENTIAL_EQU_FOUND)
  57.   message(SEND_ERROR "Missing vle.extension.differentialEquation")
  58. endif (NOT DIFFERENTIAL_EQU_FOUND)
  59. #if (NOT DSDEVS_FOUND)
  60.   #message(SEND_ERROR "Missing vle.extension.dsdevs")
  61. #endif (NOT DSDEVS_FOUND)
  62. #if (NOT FSA_FOUND)
  63.   #message(SEND_ERROR "Missing vle.extension.fsa")
  64. #endif (NOT FSA_FOUND)
  65. #if (NOT PETRINET_FOUND)
  66.   #message(SEND_ERROR "Missing vle.extension.petrinet")
  67. #endif (NOT PETRINET_FOUND)
  68.  
  69. ##
  70. ## Find boost
  71. ##
  72.  
  73. SET(Boost_USE_STATIC_LIBS OFF)
  74. SET(Boost_USE_MULTITHREAD ON)
  75. FIND_PACKAGE(Boost COMPONENTS unit_test_framework date_time)
  76.  
  77. IF (Boost_UNIT_TEST_FRAMEWORK_FOUND)
  78.   SET(HAVE_UNITTESTFRAMEWORK 1 CACHE INTERNAL "" FORCE)
  79. ENDIF (Boost_UNIT_TEST_FRAMEWORK_FOUND)
  80.  
  81. ##
  82. ## Generate the doxygen
  83. ##
  84.  
  85. #FIND_PACKAGE(Doxygen)
  86. IF (DOXYGEN)
  87.   SET(DOXYGEN_SOURCE_DIR "${PROJECT_SOURCE_DIR}/src")
  88.   SET(DOXYGEN_OUTPUT_MODELING_DIR "${PROJECT_BINARY_DIR}/doxygen/modeling")
  89.   SET(DOXYGEN_OUTPUT_SOURCE_DIR "${PROJECT_BINARY_DIR}/doxygen/sources")
  90.   CONFIGURE_FILE("cmake/doxygen-modeling.conf.in"
  91.     "${PROJECT_BINARY_DIR}/doxygen-modeling.conf")
  92.   CONFIGURE_FILE("cmake/doxygen-sources.conf.in"
  93.     "${PROJECT_BINARY_DIR}/doxygen-sources.conf")
  94.   FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/doxygen")
  95.   FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/doxygen/modeling")
  96.   FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/doxygen/sources")
  97.  
  98.   ADD_CUSTOM_COMMAND(
  99.     OUTPUT "${PROJECT_BINARY_DIR}/doxygen/modeling/index.html"
  100.     DEPENDS "${PROJECT_BINARY_DIR}/doxygen-modeling.conf"
  101.     COMMAND "${DOXYGEN}"
  102.     ARGS "${PROJECT_BINARY_DIR}/doxygen-modeling.conf")
  103.  
  104.   ADD_CUSTOM_COMMAND(
  105.     OUTPUT "${PROJECT_BINARY_DIR}/doxygen/sources/index.html"
  106.     DEPENDS "${PROJECT_BINARY_DIR}/doxygen-sources.conf"
  107.     COMMAND "${DOXYGEN}"
  108.     ARGS "${PROJECT_BINARY_DIR}/doxygen-sources.conf")
  109.  
  110.   ADD_CUSTOM_TARGET(doc_modeling ALL DEPENDS
  111.     "${PROJECT_BINARY_DIR}/doxygen-modeling.conf"
  112.     "${PROJECT_BINARY_DIR}/doxygen/modeling/index.html" VERBATIM)
  113.   ADD_CUSTOM_TARGET(doc_sources ALL DEPENDS
  114.     "${PROJECT_BINARY_DIR}/doxygen-sources.conf"
  115.     "${PROJECT_BINARY_DIR}/doxygen/sources/index.html" VERBATIM)
  116.  
  117.   INSTALL(DIRECTORY "${PROJECT_BINARY_DIR}/doxygen/modeling/html" DESTINATION
  118.     "doc/html/modeling")
  119.   INSTALL(DIRECTORY "${PROJECT_BINARY_DIR}/doxygen/sources/html" DESTINATION
  120.     "doc/html/sources")
  121. ENDIF (DOXYGEN)
  122.  
  123. ##
  124. ## Define function to simplify the definition of simulations plugins.
  125. ##
  126.  
  127. #FUNCTION(DeclareDevsDynamics name sources)
  128.   #ADD_LIBRARY(${name} MODULE ${sources})
  129.   #TARGET_LINK_LIBRARIES(${name} ${VLE_LIBRARIES})
  130.   #INSTALL(TARGETS ${name}
  131.     #RUNTIME DESTINATION plugins/simulator
  132.     #LIBRARY DESTINATION plugins/simulator)
  133. #ENDFUNCTION(DeclareDevsDynamics name sources)
  134.  
  135. #FUNCTION(DeclareCellDevsDynamics name sources)
  136.   #ADD_LIBRARY(${name} MODULE ${sources})
  137.   #TARGET_LINK_LIBRARIES(${name} ${VLE_LIBRARIES} ${CELLDEVS_LIBRARIES})
  138.   #INSTALL(TARGETS ${name}
  139.     #RUNTIME DESTINATION plugins/simulator
  140.     #LIBRARY DESTINATION plugins/simulator)
  141. #ENDFUNCTION(DeclareCellDevsDynamics name sources)
  142.  
  143. #FUNCTION(DeclareCellQssDynamics name sources)
  144.   #ADD_LIBRARY(${name} MODULE ${sources})
  145.   #TARGET_LINK_LIBRARIES(${name} ${VLE_LIBRARIES} ${CELLQSS_LIBRARIES})
  146.   #INSTALL(TARGETS ${name}
  147.     #RUNTIME DESTINATION plugins/simulator
  148.     #LIBRARY DESTINATION plugins/simulator)
  149. #ENDFUNCTION(DeclareCellQssDynamics name sources)
  150.  
  151. #FUNCTION(DeclareDecisionDynamics name sources)
  152.   #ADD_LIBRARY(${name} MODULE ${sources})
  153.   #TARGET_LINK_LIBRARIES(${name} ${VLE_LIBRARIES} ${DECISION_LIBRARIES})
  154.   #INSTALL(TARGETS ${name}
  155.     #RUNTIME DESTINATION plugins/simulator
  156.     #LIBRARY DESTINATION plugins/simulator)
  157. #ENDFUNCTION(DeclareDecisionDynamics name sources)
  158.  
  159. #FUNCTION(DeclareDifferenceEquationDynamics name sources)
  160.   #ADD_LIBRARY(${name} MODULE ${sources})
  161.   #TARGET_LINK_LIBRARIES(${name} ${VLE_LIBRARIES} ${DIFFERENCE_EQU_LIBRARIES})
  162.   #INSTALL(TARGETS ${name}
  163.     #RUNTIME DESTINATION plugins/simulator
  164.     #LIBRARY DESTINATION plugins/simulator)
  165. #ENDFUNCTION(DeclareDifferenceEquationDynamics name sources)
  166.  
  167. #FUNCTION(DeclareFsaDifferenceEquationDynamics name sources)
  168.   #ADD_LIBRARY(${name} MODULE ${sources})
  169.   #TARGET_LINK_LIBRARIES(${name} ${VLE_LIBRARIES} ${DIFFERENCE_EQU_LIBRARIES}
  170.     #${FSA_LIBRARIES})
  171.   #INSTALL(TARGETS ${name}
  172.     #RUNTIME DESTINATION plugins/simulator
  173.     #LIBRARY DESTINATION plugins/simulator)
  174. #ENDFUNCTION(DeclareFsaDifferenceEquationDynamics name sources)
  175.  
  176. FUNCTION(DeclareDifferentialEquation name sources)
  177.   ADD_LIBRARY(${name} MODULE ${sources})
  178.   TARGET_LINK_LIBRARIES(${name} ${VLE_LIBRARIES} ${DIFFERENTIAL_EQU_LIBRARIES})
  179.   INSTALL(TARGETS ${name}
  180.     RUNTIME DESTINATION plugins/simulator
  181.     LIBRARY DESTINATION plugins/simulator)
  182. ENDFUNCTION(DeclareDifferentialEquation name sources)
  183.  
  184. #FUNCTION(DeclareDsDevsDynamics name sources)
  185.   #ADD_LIBRARY(${name} MODULE ${sources})
  186.   #TARGET_LINK_LIBRARIES(${name} ${VLE_LIBRARIES} ${DSDEVS_LIBRARIES})
  187.   #INSTALL(TARGETS ${name}
  188.     #RUNTIME DESTINATION plugins/simulator
  189.     #LIBRARY DESTINATION plugins/simulator)
  190. #ENDFUNCTION(DeclareDsDevsDynamics name sources)
  191.  
  192. #FUNCTION(DeclareFsaDynamics name sources)
  193.   #ADD_LIBRARY(${name} MODULE ${sources})
  194.   #TARGET_LINK_LIBRARIES(${name} ${VLE_LIBRARIES} ${FSA_LIBRARIES})
  195.   #INSTALL(TARGETS ${name}
  196.     #RUNTIME DESTINATION plugins/simulator
  197.     #LIBRARY DESTINATION plugins/simulator)
  198. #ENDFUNCTION(DeclareFsaDynamics name sources)
  199.  
  200. #FUNCTION(DeclarePetrinetDynamics name sources)
  201.   #ADD_LIBRARY(${name} MODULE ${sources})
  202.   #TARGET_LINK_LIBRARIES(${name} ${VLE_LIBRARIES} ${PETRINET_LIBRARIES})
  203.   #INSTALL(TARGETS ${name}
  204.     #RUNTIME DESTINATION plugins/simulator
  205.     #LIBRARY DESTINATION plugins/simulator)
  206. #ENDFUNCTION(DeclarePetrinetDynamics name sources)
  207.  
  208. ##
  209. ## Subdirectory
  210. ##
  211.  
  212. ADD_SUBDIRECTORY(data)
  213. ADD_SUBDIRECTORY(doc)
  214. ADD_SUBDIRECTORY(exp)
  215. ADD_SUBDIRECTORY(src)
  216.  
  217. IF (Boost_UNIT_TEST_FRAMEWORK_FOUND)
  218.   ADD_SUBDIRECTORY(test)
  219. ENDIF (Boost_UNIT_TEST_FRAMEWORK_FOUND)
  220.  
  221. ##
  222. ## CPack configuration
  223. ##
  224.  
  225. INSTALL(FILES Authors.txt Description.txt License.txt News.txt Readme.txt
  226.   DESTINATION .)
  227.  
  228. INCLUDE(CMakeCPack.cmake)
Add Comment
Please, Sign In to add comment