]> git.ipfire.org Git - thirdparty/json-c.git/blob - tests/CMakeLists.txt
f54840d59039e7d73b1ae16f1ca638ba22950cf1
[thirdparty/json-c.git] / tests / CMakeLists.txt
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
6 add_executable(test2Formatted test2.c parse_flags.c parse_flags.h)
7 target_compile_definitions(test2Formatted PRIVATE TEST_FORMATTED=1)
8 target_link_libraries(test2Formatted PRIVATE ${PROJECT_NAME})
9
10 # https://cmake.org/cmake/help/v3.0/command/add_test.html
11 # https://pabloariasal.github.io/2018/02/19/its-time-to-do-cmake-right/
12
13 include_directories(PUBLIC ${CMAKE_SOURCE_DIR})
14
15 set(ALL_TEST_NAMES
16 test1
17 test2
18 test4
19 testReplaceExisting
20 test_cast
21 test_charcase
22 test_compare
23 test_deep_copy
24 test_double_serializer
25 test_float
26 test_int_add
27 test_int_get
28 test_locale
29 test_null
30 test_parse
31 test_parse_int64
32 test_printbuf
33 test_set_serializer
34 test_set_value
35 test_strerror
36 test_util_file
37 test_visit
38 test_object_iterator)
39
40 if (NOT DISABLE_JSON_POINTER)
41 set(ALL_TEST_NAMES ${ALL_TEST_NAMES} test_json_pointer)
42 if (NOT DISABLE_JSON_PATCH)
43 set(ALL_TEST_NAMES ${ALL_TEST_NAMES} test_json_patch)
44 endif()
45 endif()
46
47 foreach(TESTNAME ${ALL_TEST_NAMES})
48
49 add_executable(${TESTNAME} ${TESTNAME}.c)
50 add_test(NAME ${TESTNAME} COMMAND ${PROJECT_SOURCE_DIR}/tests/${TESTNAME}.test)
51
52 # XXX using the non-target_ versions of these doesn't work :(
53 target_include_directories(
54 ${TESTNAME}
55 PUBLIC
56 ${CMAKE_CURRENT_LIST_DIR}
57 )
58 target_link_libraries(
59 ${TESTNAME}
60 PRIVATE
61 ${PROJECT_NAME}
62 )
63
64 endforeach(TESTNAME)