-
Notifications
You must be signed in to change notification settings - Fork 84
/
CMakeLists.txt
140 lines (119 loc) · 4.35 KB
/
CMakeLists.txt
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
function(declare_odbc_test_targets libname UNICODE)
add_executable(${libname}-ut
gtest_main.cpp
gtest_env.h
gtest_env.cpp
escape_sequences_ut.cpp
lexer_ut.cpp
AttributeContainer_ut.cpp
type_conversion_ut.cpp
buffer_filling_ut.cpp
)
target_link_libraries(${libname}-ut
PRIVATE ${libname}-impl
PRIVATE gtest-lib
)
add_test(NAME ${libname}-ut COMMAND ${libname}-ut)
add_executable(${libname}-load-ut
load_ut.cpp
)
target_link_libraries(${libname}-load-ut
PRIVATE ${ODBC_LIBRARIES}
PRIVATE ${Poco_Foundation_LIBRARY}
PRIVATE ${CMAKE_DL_LIBS}
PRIVATE Threads::Threads
)
if (WIN32)
target_link_libraries(${libname}-load-ut PUBLIC Iphlpapi)
endif ()
target_include_directories(${libname}-load-ut
PRIVATE ${PROJECT_BINARY_DIR}
PRIVATE ${PROJECT_SOURCE_DIR}
PRIVATE ${Poco_INCLUDE_DIRS}
PRIVATE ${ODBC_INCLUDE_DIRECTORIES}
)
if (UNICODE)
target_compile_definitions(${libname}-load-ut
PUBLIC UNICODE
PUBLIC _UNICODE
)
endif ()
add_test(NAME "${libname}-load-ut" COMMAND ${libname}-load-ut $<TARGET_FILE:clickhouse-odbc>)
add_test(NAME "${libname}-load-ut-w" COMMAND ${libname}-load-ut $<TARGET_FILE:clickhouse-odbcw>)
add_executable(${libname}-client-it
gtest_main.cpp
gtest_env.h
gtest_env.cpp
client_utils.h
client_test_base.h
${PROJECT_SOURCE_DIR}/driver/type_info.cpp
${PROJECT_SOURCE_DIR}/driver/utils/unicode_conv.h
misc_it.cpp
statement_parameters_it.cpp
performance_it.cpp
)
target_link_libraries(${libname}-client-it
PRIVATE ${ODBC_LIBRARIES}
PRIVATE ${Poco_Foundation_LIBRARY}
PRIVATE gtest-lib
PRIVATE ${CMAKE_DL_LIBS}
PRIVATE Threads::Threads
)
target_include_directories(${libname}-client-it
PRIVATE ${PROJECT_BINARY_DIR}
PRIVATE ${PROJECT_SOURCE_DIR}
PRIVATE ${Poco_INCLUDE_DIRS}
PRIVATE ${ODBC_INCLUDE_DIRECTORIES}
)
if (UNICODE)
target_compile_definitions(${libname}-client-it
PUBLIC UNICODE
PUBLIC _UNICODE
)
endif ()
if (TEST_DSN)
add_test(NAME ${libname}-client-it COMMAND ${libname}-client-it ${TEST_DSN})
endif ()
if (TEST_DSN_W)
add_test(NAME ${libname}-client-it-w COMMAND ${libname}-client-it ${TEST_DSN_W})
endif ()
if (NANOODBC_LIBRARY
# AND (
# (NANODBC_ENABLE_UNICODE AND UNICODE) OR
# (NOT NANODBC_ENABLE_UNICODE AND NOT UNICODE)
# )
)
if (NANODBC_ENABLE_UNICODE)
set(nanoname nanow)
else ()
set(nanoname nano)
endif()
add_executable(${libname}-${nanoname}-it
nano_it.cpp
)
target_link_libraries(${libname}-${nanoname}-it
PRIVATE ${NANOODBC_LIBRARY}
)
if (UNICODE)
target_compile_definitions(${libname}-${nanoname}-it
PUBLIC UNICODE
PUBLIC _UNICODE
)
endif ()
if (TEST_DSN)
add_test(NAME ${libname}-${nanoname}-it COMMAND ${libname}-${nanoname}-it DSN=${TEST_DSN})
if (NOT (CMAKE_BUILD_TYPE_UC STREQUAL "TSAN" OR CMAKE_BUILD_TYPE_UC STREQUAL "ASAN" OR CMAKE_BUILD_TYPE_UC STREQUAL "MSAN"))
#TODO: add_test(NAME "${libname}-${nanoname}-valgrind-it" COMMAND valgrind -v --leak-check=full --show-leak-kinds=all $<TARGET_FILE:${libname}-${nanoname}-it> DSN=${TEST_DSN})
endif ()
endif ()
if (TEST_DSN_W)
add_test(NAME ${libname}-${nanoname}-it-w COMMAND ${libname}-${nanoname}-it DSN=${TEST_DSN_W})
if (NOT (CMAKE_BUILD_TYPE_UC STREQUAL "TSAN" OR CMAKE_BUILD_TYPE_UC STREQUAL "ASAN" OR CMAKE_BUILD_TYPE_UC STREQUAL "MSAN"))
#TODO: add_test(NAME "${libname}-${nanoname}-valgrind-it-w" COMMAND valgrind -v --leak-check=full --show-leak-kinds=all $<TARGET_FILE:${libname}-${nanoname}-it> DSN=${TEST_DSN_W})
endif ()
endif ()
# gdb -ex "catch throw" -ex run --args ./clickhouse-odbc-nano DSN=clickhouse_localhost_system
endif ()
endfunction()
declare_odbc_test_targets(clickhouse-odbc 0)
declare_odbc_test_targets(clickhouse-odbcw 1)