You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

CMakeLists.txt 1.8 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. cmake_minimum_required(VERSION 3.1)
  2. add_executable(test1Formatted test1.c parse_flags.c parse_flags.h)
  3. target_compile_definitions(test1Formatted PRIVATE TEST_FORMATTED=1)
  4. target_link_libraries(test1Formatted PRIVATE ${PROJECT_NAME})
  5. add_executable(test2Formatted test2.c parse_flags.c parse_flags.h)
  6. target_compile_definitions(test2Formatted PRIVATE TEST_FORMATTED=1)
  7. target_link_libraries(test2Formatted PRIVATE ${PROJECT_NAME})
  8. # https://cmake.org/cmake/help/v3.0/command/add_test.html
  9. # https://pabloariasal.github.io/2018/02/19/its-time-to-do-cmake-right/
  10. include_directories(PUBLIC ${CMAKE_SOURCE_DIR})
  11. set(ALL_TEST_NAMES
  12. test1
  13. test2
  14. test4
  15. testReplaceExisting
  16. test_cast
  17. test_charcase
  18. test_compare
  19. test_deep_copy
  20. test_double_serializer
  21. test_float
  22. test_int_add
  23. test_locale
  24. test_null
  25. test_null_keys_add
  26. test_null_keys_get
  27. test_null_keys_del
  28. test_null_keys_print
  29. test_parse
  30. test_parse_int64
  31. test_printbuf
  32. test_set_serializer
  33. test_set_value
  34. test_strerror
  35. test_util_file
  36. test_visit
  37. test_object_iterator)
  38. if (NOT DISABLE_JSON_POINTER)
  39. set(ALL_TEST_NAMES ${ALL_TEST_NAMES} test_json_pointer)
  40. endif()
  41. foreach(TESTNAME ${ALL_TEST_NAMES})
  42. add_executable(${TESTNAME} ${TESTNAME}.c)
  43. if(${TESTNAME} STREQUAL test_strerror OR ${TESTNAME} STREQUAL test_util_file)
  44. # For output consistency, we need _json_c_strerror() in some tests:
  45. target_sources(${TESTNAME} PRIVATE ../strerror_override.c)
  46. endif()
  47. add_test(NAME ${TESTNAME} COMMAND ${PROJECT_SOURCE_DIR}/tests/${TESTNAME}.test)
  48. # XXX using the non-target_ versions of these doesn't work :(
  49. target_include_directories(
  50. ${TESTNAME}
  51. PUBLIC
  52. ${CMAKE_CURRENT_LIST_DIR}
  53. )
  54. target_link_libraries(
  55. ${TESTNAME}
  56. PRIVATE
  57. ${PROJECT_NAME}
  58. )
  59. endforeach(TESTNAME)