Codebase list getdns / d447999
Add check for check library, and if found add the main test module. Note that tests_dict/list/stub_async/namespaces are built, but not run. I don't know why. Jim Hague 4 years ago
2 changed file(s) with 153 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
22 if (POLICY CMP0075)
33 cmake_policy(SET CMP0075 NEW)
44 endif ()
5
6 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/")
57
68 set(CMAKE_VERBOSE_MAKEFILE_ON)
79
544546 getdns
545547 )
546548 set_property(TARGET getdns_server_mon PROPERTY C_STANDARD 11)
549
550 find_package(Check "0.9.6")
551
552 if (NOT Check_FOUND)
553 message(WARNING "check library not found, not building test programs")
554 else ()
555 add_executable(check_getdns
556 src/test/check_getdns_common.c
557 src/test/check_getdns_context_set_timeout.c
558 src/test/check_getdns_transport.c
559 src/test/check_getdns_selectloop.c
560 src/test/check_getdns.c
561 )
562 target_link_libraries(check_getdns
563 PRIVATE
564 getdns
565 Check::Check
566 Threads::Threads
567 )
568
569 add_executable(tests_dict
570 src/test/tests_dict.c
571 src/test/testmessages.c
572 )
573 target_link_libraries(tests_dict PRIVATE getdns Check::Check)
574
575 add_executable(tests_list
576 src/test/tests_list.c
577 src/test/testmessages.c
578 )
579 target_link_libraries(tests_list PRIVATE getdns Check::Check)
580
581 add_executable(tests_namespaces src/test/tests_namespaces.c)
582 target_link_libraries(tests_namespaces PRIVATE getdns Check::Check)
583
584 add_executable(tests_stub_async
585 src/test/tests_stub_async.c
586 src/test/testmessages.c
587 )
588 target_link_libraries(tests_stub_async PRIVATE getdns Check::Check)
589
590 add_executable(tests_stub_sync src/test/tests_stub_sync.c)
591 target_link_libraries(tests_stub_sync PRIVATE getdns Check::Check)
592
593 include(CTest)
594
595 add_test(NAME test_noeventloop COMMAND check_getdns)
596 set_property(TEST test_noeventloop PROPERTY
597 ENVIRONMENT "GETDNS_TEST_PORT=43210;CK_TIMEOUT_MULTIPLIER=2;CK_LOG_FILE_NAME=check_getdns.log"
598 )
599 endif ()
547600
548601 # Substitutions in files.
549602 configure_file(cmake/include/cmakeconfig.h.in config.h)
0 # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
1 # file Copyright.txt or https://cmake.org/licensing for details.
2
3 #[=======================================================================[.rst:
4 FindCheck
5 --------
6
7 Find the Check (Unit Testing Framework for C) library
8
9 Imported targets
10 ^^^^^^^^^^^^^^^^
11
12 This module defines the following :prop_tgt:`IMPORTED` targets:
13
14 ``Check::Check``
15 The Check library, if found.
16
17 Result variables
18 ^^^^^^^^^^^^^^^^
19
20 This module will set the following variables in your project:
21
22 ``Check_FOUND``
23 If false, do not try to use Check.
24 ``CHECK_INCLUDE_DIR``
25 where to find check.h, etc.
26 ``CHECK_LIBRARIES``
27 the libraries needed to use Check.
28 ``CHECK_VERSION``
29 the version of the Check library found
30
31 #]=======================================================================]
32
33 find_path(CHECK_INCLUDE_DIR check.h
34 HINTS
35 ${PC_CHECK_INCLUDEDIR}
36 ${PC_CHECK_INCLUDE_DIRS}
37 )
38
39 # Check for PIC and non-PIC libraries. If PIC present, use that
40 # in preference (as per Debian check.pc).
41 find_library(CHECK_LIBRARY NAMES check_pic libcheck_pic
42 HINTS
43 ${PC_CHECK_LIBDIR}
44 ${PC_CHECK_LIBRARY_DIRS}
45 )
46
47 if (NOT CHECK_LIBRARY)
48 find_library(CHECK_LIBRARY NAMES check libcheck
49 HINTS
50 ${PC_CHECK_LIBDIR}
51 ${PC_CHECK_LIBRARY_DIRS}
52 )
53 endif ()
54
55 set(CHECK_LIBRARIES "")
56
57 # Check may need the math, subunit and rt libraries on Unix
58 if (UNIX)
59 find_library(CHECK_MATH_LIBRARY m)
60 find_library(CHECK_RT_LIBRARY rt)
61 find_library(CHECK_SUBUNIT_LIBRARY subunit)
62
63 if (CHECK_MATH_LIBRARY)
64 list(APPEND CHECK_LIBRARIES "${CHECK_MATH_LIBRARY}")
65 endif ()
66 if (CHECK_RT_LIBRARY)
67 list(APPEND CHECK_LIBRARIES "${CHECK_RT_LIBRARY}")
68 endif ()
69 if (CHECK_SUBUNIT_LIBRARY)
70 list(APPEND CHECK_LIBRARIES "${CHECK_SUBUNIT_LIBRARY}")
71 endif ()
72 endif()
73
74 if (CHECK_INCLUDE_DIR AND CHECK_LIBRARY)
75 if (NOT TARGET Check::Check)
76 add_library(Check::Check UNKNOWN IMPORTED)
77 set_target_properties(Check::Check PROPERTIES
78 INTERFACE_INCLUDE_DIRECTORIES "${CHECK_INCLUDE_DIR}"
79 INTERFACE_LINK_LIBRARIES "${CHECK_LIBRARIES}"
80 IMPORTED_LINK_INTERFACE_LANGUAGES "C"
81 IMPORTED_LOCATION "${CHECK_LIBRARY}"
82 )
83 endif ()
84
85 if (NOT CHECK_VERSION AND CHECK_INCLUDE_DIR AND EXISTS "${CHECK_INCLUDE_DIR}/check.h")
86 file(STRINGS "${CHECK_INCLUDE_DIR}/check.h" CHECK_H REGEX "^#define CHECK_M[A-Z]+_VERSION")
87 string(REGEX REPLACE "^.*\(([0-9]+)\).*\(([0-9]+)\).*\(([0-9]+)\).*$" "\\1.\\2.\\3" CHECK_VERSION "${CHECK_H}")
88 endif ()
89 endif()
90
91 list(APPEND CHECK_LIBRARIES "${CHECK_LIBRARY}")
92
93 include(FindPackageHandleStandardArgs)
94 find_package_handle_standard_args(Check
95 REQUIRED_VARS CHECK_LIBRARIES CHECK_INCLUDE_DIR
96 VERSION_VAR CHECK_VERSION
97 )
98
99 mark_as_advanced(CHECK_INCLUDE_DIR CHECK_LIBRARIES)