Skip to content

Commit df4ae9f

Browse files
authored
Merge pull request #219 from Jihadist/separateSharedStaticLibs
Separate building static and shared libs
2 parents 29a40fb + 3f3c7d7 commit df4ae9f

File tree

4 files changed

+17
-18
lines changed

4 files changed

+17
-18
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: 8 additions & 16 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)
@@ -77,16 +72,15 @@ IF (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
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
7974
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib gcc_s)
80-
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib-static gcc_s)
8175
ENDIF ()
8276
ENDIF ()
8377

84-
INSTALL (TARGETS clickhouse-cpp-lib clickhouse-cpp-lib-static
78+
79+
INSTALL (TARGETS clickhouse-cpp-lib
8580
ARCHIVE DESTINATION lib
8681
LIBRARY DESTINATION lib
8782
)
8883

89-
9084
# general
9185
INSTALL(FILES block.h DESTINATION include/clickhouse/)
9286
INSTALL(FILES client.h DESTINATION include/clickhouse/)
@@ -137,10 +131,8 @@ INSTALL(FILES types/types.h DESTINATION include/clickhouse/types/)
137131

138132
IF (WITH_OPENSSL)
139133
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib OpenSSL::SSL)
140-
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib-static OpenSSL::SSL)
141134
ENDIF ()
142135

143136
IF (WIN32 OR MINGW)
144137
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib wsock32 ws2_32)
145-
TARGET_LINK_LIBRARIES (clickhouse-cpp-lib-static wsock32 ws2_32)
146138
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
@@ -36,7 +36,7 @@ ADD_EXECUTABLE (clickhouse-cpp-ut
3636
)
3737

3838
TARGET_LINK_LIBRARIES (clickhouse-cpp-ut
39-
clickhouse-cpp-lib-static
39+
clickhouse-cpp-lib
4040
gtest-lib
4141
)
4242
IF (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")

0 commit comments

Comments
 (0)