Skip to content

Commit 3359603

Browse files
committed
Separate building static and shared libs, use cmake BUILD_SHARED_LIBS
1 parent d03dbfe commit 3359603

File tree

4 files changed

+22
-19
lines changed

4 files changed

+22
-19
lines changed

CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ INCLUDE (cmake/openssl.cmake)
66

77
OPTION (BUILD_BENCHMARK "Build benchmark" OFF)
88
OPTION (BUILD_TESTS "Build tests" OFF)
9+
OPTION (BUILD_SHARED_LIBS "Build shared libs" OFF)
910
OPTION (WITH_OPENSSL "Use OpenSSL for TLS connections" OFF)
1011

1112
PROJECT (CLICKHOUSE-CLIENT)
@@ -27,6 +28,12 @@ PROJECT (CLICKHOUSE-CLIENT)
2728
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -Wno-deprecated-declarations")
2829
ENDIF ()
2930

31+
IF (APPLE OR MSVC)
32+
IF(BUILD_SHARED_LIBS)
33+
MESSAGE(FATAL "Does not support shared on this platform")
34+
ENDIF()
35+
ENDIF()
36+
3037
SUBDIRS (
3138
clickhouse
3239
contrib/absl

clickhouse/CMakeLists.txt

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ IF (WITH_OPENSSL)
3838
LIST(APPEND clickhouse-cpp-lib-src base/sslsocket.cpp)
3939
ENDIF ()
4040

41-
ADD_LIBRARY (clickhouse-cpp-lib SHARED ${clickhouse-cpp-lib-src})
42-
SET_TARGET_PROPERTIES(clickhouse-cpp-lib PROPERTIES LINKER_LANGUAGE CXX)
41+
ADD_LIBRARY (clickhouse-cpp-lib ${clickhouse-cpp-lib-src})
42+
SET_TARGET_PROPERTIES (clickhouse-cpp-lib PROPERTIES LINKER_LANGUAGE CXX)
4343
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib
4444
absl-lib
4545
cityhash-lib
@@ -49,15 +49,10 @@ TARGET_INCLUDE_DIRECTORIES (clickhouse-cpp-lib
4949
PUBLIC ${PROJECT_SOURCE_DIR}
5050
)
5151

52-
ADD_LIBRARY (clickhouse-cpp-lib-static STATIC ${clickhouse-cpp-lib-src})
53-
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib-static
54-
absl-lib
55-
cityhash-lib
56-
lz4-lib
57-
)
58-
TARGET_INCLUDE_DIRECTORIES (clickhouse-cpp-lib-static
59-
PUBLIC ${PROJECT_SOURCE_DIR}
60-
)
52+
IF (NOT BUILD_SHARED_LIBS)
53+
ADD_LIBRARY (clickhouse-cpp-lib-static ALIAS clickhouse-cpp-lib)
54+
ENDIF()
55+
6156

6257
IF (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
6358
INCLUDE (CheckCXXSourceCompiles)
@@ -76,17 +71,20 @@ IF (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
7671
# /usr/bin/ld: CMakeFiles/simple-test.dir/main.cpp.o: undefined reference to symbol '_Unwind_Resume@@GCC_3.0'
7772
# /usr/bin/ld: /lib/x86_64-linux-gnu/libgcc_s.so.1: error adding symbols: DSO missing from command line
7873
# FIXME: that workaround breaks clang build on mingw
79-
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib gcc_s)
80-
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib-static gcc_s)
74+
IF (BUILD_SHARED_LIBS)
75+
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib gcc_s)
76+
ELSE()
77+
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib-static gcc_s)
78+
ENDIF()
8179
ENDIF ()
8280
ENDIF ()
8381

84-
INSTALL (TARGETS clickhouse-cpp-lib clickhouse-cpp-lib-static
82+
83+
INSTALL (TARGETS clickhouse-cpp-lib
8584
ARCHIVE DESTINATION lib
8685
LIBRARY DESTINATION lib
8786
)
8887

89-
9088
# general
9189
INSTALL(FILES block.h DESTINATION include/clickhouse/)
9290
INSTALL(FILES client.h DESTINATION include/clickhouse/)
@@ -137,10 +135,8 @@ INSTALL(FILES types/types.h DESTINATION include/clickhouse/types/)
137135

138136
IF (WITH_OPENSSL)
139137
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib OpenSSL::SSL)
140-
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib-static OpenSSL::SSL)
141138
ENDIF ()
142139

143140
IF (WIN32 OR MINGW)
144141
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib wsock32 ws2_32)
145-
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib-static wsock32 ws2_32)
146142
ENDIF ()

tests/simple/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ ADD_EXECUTABLE (simple-test
44
)
55

66
TARGET_LINK_LIBRARIES (simple-test
7-
clickhouse-cpp-lib-static
7+
clickhouse-cpp-lib
88
)
99

1010
IF (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")

ut/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ ADD_EXECUTABLE (clickhouse-cpp-ut
3535
)
3636

3737
TARGET_LINK_LIBRARIES (clickhouse-cpp-ut
38-
clickhouse-cpp-lib-static
38+
clickhouse-cpp-lib
3939
gtest-lib
4040
)
4141
IF (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")

0 commit comments

Comments
 (0)