| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- cmake_minimum_required(VERSION 2.8)
- SET (CUSTOM_BINARY_OUTPUT_DIR bin)
- SET (DOC_OUTPUT doc/)
- set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Wextra")
- set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
- # Add ncurses
- SET(CURSES_NEED_NCURSES TRUE)
- find_package(Curses)
- include_directories(include ${CURSES_INCLUDE_DIRS})
- # jsonstroll
- add_executable(jsonstroll
- src/warning.cpp
- src/diffCmd.cpp
- src/params.cpp
- src/curseOutput.cpp
- src/curseSimpleOutput.cpp
- src/curseSplitOutput.cpp
- src/simpleOutput.cpp
- src/linearHistory.cpp
- src/outputFlag.cpp
- src/streamConsumer.cpp
- src/unicode.cpp
- src/searchPattern.cpp
- src/inputSequence.cpp
- src/levenshtein.cpp
- src/jsonElement.cpp
- src/jsonArray.cpp
- src/jsonObject.cpp
- src/jsonContainer.cpp
- src/jsonObjectEntry.cpp
- src/jsonPrimitive.cpp
- src/jsonException.cpp
- src/except.cpp
- src/main.cpp
- )
- set_property(TARGET jsonstroll PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CUSTOM_BINARY_OUTPUT_DIR})
- target_link_libraries(jsonstroll ${ncurses++_LIBRARIES} ${CURSES_LIBRARIES})
- # Add tests
- enable_testing()
- add_executable(json_test
- test/src/main.cpp
- src/jsonContainer.cpp
- src/warning.cpp
- src/linearHistory.cpp
- src/searchPattern.cpp
- src/levenshtein.cpp
- src/streamConsumer.cpp
- src/unicode.cpp
- src/jsonArray.cpp
- src/jsonObjectEntry.cpp
- src/jsonObject.cpp
- src/jsonElement.cpp
- src/jsonPrimitive.cpp
- src/jsonException.cpp
- )
- set_property(
- TARGET json_test
- PROPERTY RUNTIME_OUTPUT_DIRECTORY test
- )
- add_executable(wrapped_test
- test/src/wrapped.cpp
- )
- add_test(json_test test/json_test)
- set_property(
- TARGET wrapped_test
- PROPERTY RUNTIME_OUTPUT_DIRECTORY test
- )
- add_test(wrapped_test test/wrapped_test)
- add_executable(optional_test
- test/src/optional.cpp
- )
- add_test(optional_test test/optional_test)
- set_property(
- TARGET optional_test
- PROPERTY RUNTIME_OUTPUT_DIRECTORY test
- )
- add_executable(unicode_test
- src/unicode.cpp
- src/jsonException.cpp
- src/streamConsumer.cpp
- src/jsonArray.cpp
- src/jsonContainer.cpp
- src/jsonObject.cpp
- src/jsonObjectEntry.cpp
- src/jsonElement.cpp
- src/jsonPrimitive.cpp
- src/linearHistory.cpp
- src/searchPattern.cpp
- src/warning.cpp
- test/src/unicode.cpp
- )
- add_test(unicode_test test/unicode_test)
- set_property(
- TARGET unicode_test
- PROPERTY RUNTIME_OUTPUT_DIRECTORY test
- )
- add_executable(levenshtein_test
- src/levenshtein.cpp
- src/jsonContainer.cpp
- src/jsonElement.cpp
- src/jsonPrimitive.cpp
- src/jsonObjectEntry.cpp
- src/searchPattern.cpp
- test/src/levenshtein_test.cpp
- )
- add_test(levenshtein_test test/levenshtein_test)
- set_property(
- TARGET levenshtein_test
- PROPERTY RUNTIME_OUTPUT_DIRECTORY test
- )
- # Add manual page
- find_program (HELP2MAN help2man)
- add_custom_target(man ALL)
- if (HELP2MAN)
- add_definitions(
- -DVERSIONDATE=__DATE__
- )
- add_custom_target(
- TARGET man ALL
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DOC_OUTPUT}
- )
- add_custom_command(
- TARGET man
- SOURCE ${CMAKE_CURRENT_BINARY_DIR}/${CUSTOM_BINARY_OUTPUT_DIR}/jsonstroll
- COMMAND help2man ${CMAKE_CURRENT_BINARY_DIR}/${CUSTOM_BINARY_OUTPUT_DIR}/jsonstroll -o ${DOC_OUTPUT}/jsonstroll.1
- OUTPUTS ${DOC_OUTPUT}/jsonstroll.1
- )
- add_custom_command(
- TARGET man
- SOURCE man
- DEPENDS ${DOC_OUTPUT}/jsonstroll.1
- )
- endif()
- # Install
- install(
- TARGETS jsonstroll
- DESTINATION bin
- )
- install(
- FILES ${DOC_OUTPUT}/jsonstroll.1
- DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man1
- )
|