1
1

CMakeLists.txt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. cmake_minimum_required(VERSION 2.8)
  2. SET (CUSTOM_BINARY_OUTPUT_DIR bin)
  3. SET (DOC_OUTPUT doc/)
  4. set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Wextra")
  5. set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
  6. add_executable(jsonstroll
  7. src/main.cpp
  8. src/warning.cpp
  9. src/params.cpp
  10. src/curseOutput.cpp
  11. src/linearHistory.cpp
  12. src/outputFlag.cpp
  13. src/streamConsumer.cpp
  14. src/jsonElement.cpp
  15. src/jsonArray.cpp
  16. src/jsonObject.cpp
  17. src/jsonContainer.cpp
  18. src/jsonObjectEntry.cpp
  19. src/jsonPrimitive.cpp
  20. src/jsonException.cpp
  21. src/except.cpp
  22. )
  23. set_property(TARGET jsonstroll PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CUSTOM_BINARY_OUTPUT_DIR})
  24. # Add ncurses
  25. SET(CURSES_NEED_NCURSES TRUE)
  26. find_package(Curses)
  27. target_link_libraries(jsonstroll ${ncurses++_LIBRARIES} ${CURSES_LIBRARIES})
  28. include_directories(include ${CURSES_INCLUDE_DIRS})
  29. # Add tests
  30. enable_testing()
  31. add_executable(json_test
  32. test/src/main.cpp
  33. src/jsonContainer.cpp
  34. src/warning.cpp
  35. src/linearHistory.cpp
  36. src/streamConsumer.cpp
  37. src/jsonArray.cpp
  38. src/jsonObjectEntry.cpp
  39. src/jsonObject.cpp
  40. src/jsonElement.cpp
  41. src/jsonPrimitive.cpp
  42. src/jsonException.cpp
  43. )
  44. set_property(
  45. TARGET json_test
  46. PROPERTY RUNTIME_OUTPUT_DIRECTORY test
  47. )
  48. add_executable(wrapped_test
  49. test/src/wrapped.cpp
  50. )
  51. add_test(json_test test/json_test)
  52. set_property(
  53. TARGET wrapped_test
  54. PROPERTY RUNTIME_OUTPUT_DIRECTORY test
  55. )
  56. add_test(wrapped_test test/wrapped_test)
  57. # Add manual page
  58. find_program (HELP2MAN help2man)
  59. add_custom_target(man ALL)
  60. if (HELP2MAN)
  61. add_definitions(
  62. -DVERSIONDATE=__DATE__
  63. )
  64. add_custom_target(
  65. TARGET man ALL
  66. COMMAND ${CMAKE_COMMAND} -E make_directory ${DOC_OUTPUT}
  67. )
  68. add_custom_command(
  69. TARGET man
  70. SOURCE ${CMAKE_CURRENT_BINARY_DIR}/${CUSTOM_BINARY_OUTPUT_DIR}/jsonstroll
  71. COMMAND help2man ${CMAKE_CURRENT_BINARY_DIR}/${CUSTOM_BINARY_OUTPUT_DIR}/jsonstroll -o ${DOC_OUTPUT}/jsonstroll.1
  72. OUTPUTS ${DOC_OUTPUT}/jsonstroll.1
  73. )
  74. add_custom_command(
  75. TARGET man
  76. SOURCE man
  77. DEPENDS ${DOC_OUTPUT}/jsonstroll.1
  78. )
  79. endif()
  80. # Install
  81. install(
  82. TARGETS jsonstroll
  83. DESTINATION bin
  84. )
  85. install(
  86. FILES ${DOC_OUTPUT}/jsonstroll.1
  87. DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man1
  88. )