-
Notifications
You must be signed in to change notification settings - Fork 297
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
69 lines (57 loc) · 2.67 KB
/
CMakeLists.txt
File metadata and controls
69 lines (57 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#------------------------------
# Unit test executable
#------------------------------
set(MINIZIP_INCLUDE_DIR "${CASS_SRC_DIR}/third_party/minizip")
set(MINIZIP_SOURCE_FILES ${MINIZIP_INCLUDE_DIR}/zip.c) # Zip functionality is not built into the driver
set(HTTP_PARSER_INCLUDE_DIR "${CASS_ROOT_DIR}/src/third_party/http-parser")
# The unit tests use `test::Utils::msleep()` and this is the minimum include
# and source files required to shared that code.
set(INTEGRATION_TESTS_SOURCE_DIR ${CASS_ROOT_DIR}/tests/src/integration)
set(INTEGRATION_TESTS_CCM_SOURCE_DIR ${INTEGRATION_TESTS_SOURCE_DIR}/ccm)
set(INTEGRATION_TESTS_SOURCE_FILES ${INTEGRATION_TESTS_SOURCE_DIR}/test_utils.cpp)
set(INTEGRATION_TESTS_CCM_SOURCE_FILES "${INTEGRATION_TESTS_CCM_SOURCE_DIR}/tsocket.cpp")
file(GLOB UNIT_TESTS_INCLUDE_FILES *.hpp)
file(GLOB UNIT_TESTS_SOURCE_FILES *.cpp)
file(GLOB UNIT_TESTS_TESTS_SOURCE_FILES tests/*.cpp)
source_group("Header Files" FILES ${UNIT_TESTS_INCLUDE_FILES})
source_group("Source Files" FILES ${UNIT_TESTS_SOURCE_FILES})
source_group("Source Files\\tests" FILES ${UNIT_TESTS_TESTS_SOURCE_FILES})
if(CASS_USE_OPENSSL AND WIN32 AND (NOT CASS_OPENSSL_APPLINK STREQUAL ""))
# Allow user to specify the location of applink.c. Some Windows builds require this as an
# interface into OpenSSL BIO ops. See https://docs.openssl.org/1.1.1/man3/OPENSSL_Applink/
list(APPEND UNIT_TESTS_SOURCE_FILES "${CASS_OPENSSL_APPLINK}")
endif()
add_executable(cassandra-unit-tests
${MINIZIP_SOURCE_FILES}
${UNIT_TESTS_SOURCE_FILES}
${UNIT_TESTS_TESTS_SOURCE_FILES}
${INTEGRATION_TESTS_SOURCE_FILES}
${INTEGRATION_TESTS_CCM_SOURCE_FILES}
${CPP_DRIVER_SOURCE_FILES}
${UNIT_TESTS_INCLUDE_FILES}
${CASS_API_HEADER_FILES}
${CPP_DRIVER_INCLUDE_FILES}
${CPP_DRIVER_HEADER_SOURCE_FILES}
${CPP_DRIVER_HEADER_SOURCE_ATOMIC_FILES}
${GOOGLE_TEST_HEADER_FILES}
${GOOGLE_TEST_SOURCE_FILES})
target_include_directories(cassandra-unit-tests PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${CASS_INCLUDES}
${MINIZIP_INCLUDE_DIR}
${HTTP_PARSER_INCLUDE_DIR}
${INTEGRATION_TESTS_SOURCE_DIR}
${INTEGRATION_TESTS_CCM_SOURCE_DIR})
target_link_libraries(cassandra-unit-tests
${CASS_LIBS}
${PROJECT_LIB_NAME_TARGET})
set_target_properties(cassandra-unit-tests PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set_target_properties(cassandra-unit-tests PROPERTIES
PROJECT_LABEL "Unit Tests"
FOLDER "Tests")
# Add the unit tests to be executed by ctest (see CMake BUILD_TESTING)
add_test("Unit Tests" cassandra-unit-tests COMMAND cassandra-unit-tests)
set_tests_properties("Unit Tests" PROPERTIES TIMEOUT 5)