@@ -33,7 +33,6 @@ message(STATUS "Pulsar Client version macro: ${PULSAR_CLIENT_VERSION_MACRO}")
3333set (PVM_COMMENT "This is generated from Version.h.in by CMAKE. DO NOT EDIT DIRECTLY" )
3434configure_file (templates/Version .h.in include /pulsar/Version .h @ONLY)
3535
36- option (LINK_STATIC "Link against static libraries" OFF )
3736if (VCPKG_TRIPLET)
3837 message (STATUS "Use vcpkg, triplet is ${VCPKG_TRIPLET} " )
3938 set (CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR} /vcpkg_installed/${VCPKG_TRIPLET} " )
@@ -45,13 +44,7 @@ if (VCPKG_TRIPLET)
4544 set (ZLIB_ROOT ${VCPKG_DEBUG_ROOT} )
4645 set (OPENSSL_ROOT_DIR ${VCPKG_DEBUG_ROOT} )
4746 endif ()
48- if (VCPKG_TRIPLET MATCHES ".*-static" )
49- set (LINK_STATIC ON )
50- else ()
51- set (LINK_STATIC OFF )
52- endif ()
5347endif ()
54- MESSAGE (STATUS "LINK_STATIC: " ${LINK_STATIC} )
5548
5649find_program (CCACHE_PROGRAM ccache)
5750if (CCACHE_PROGRAM)
@@ -76,6 +69,9 @@ MESSAGE(STATUS "BUILD_WIRESHARK: " ${BUILD_WIRESHARK})
7669option (BUILD_PERF_TOOLS "Build Pulsar CLI perf producer/consumer" OFF )
7770MESSAGE (STATUS "BUILD_PERF_TOOLS: " ${BUILD_PERF_TOOLS} )
7871
72+ option (LINK_STATIC "Link against static libraries" OFF )
73+ MESSAGE (STATUS "LINK_STATIC: " ${LINK_STATIC} )
74+
7975option (USE_LOG4CXX "Build with Log4cxx support" OFF )
8076MESSAGE (STATUS "USE_LOG4CXX: " ${USE_LOG4CXX} )
8177
@@ -97,7 +93,7 @@ set(CMAKE_C_STANDARD 11)
9793# https://stackoverflow.com/questions/10046114/in-cmake-how-can-i-test-if-the-compiler-is-clang
9894if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" )
9995 add_definitions (-DWIN32_LEAN_AND_MEAN -DNOGDI -D_WIN32_WINNT=0x0501 -D_CRT_SECURE_NO_WARNINGS)
100- add_compile_options (/wd4244 /wd4267 /wd4018 /wd4715 /wd4251 /wd4275 /wd4819 )
96+ add_compile_options (/wd4244 /wd4267 /wd4018 /wd4715 /wd4251 /wd4275)
10197elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel" )
10298 # ?? Don't have this to test with
10399else () # GCC or Clang are mostly compatible:
@@ -172,7 +168,7 @@ if (NOT ZLIB_INCLUDE_DIRS OR NOT ZLIB_LIBRARIES)
172168 message (FATAL_ERROR "Could not find zlib" )
173169endif ()
174170
175- if (LINK_STATIC AND NOT VCPKG_TRIPLET )
171+ if (LINK_STATIC)
176172 find_library (LIB_ZSTD NAMES libzstd.a)
177173 message (STATUS "ZStd: ${LIB_ZSTD} " )
178174 find_library (LIB_SNAPPY NAMES libsnappy.a)
@@ -199,29 +195,6 @@ if (LINK_STATIC AND NOT VCPKG_TRIPLET)
199195 if (MSVC )
200196 add_definitions (-DCURL_STATICLIB)
201197 endif ()
202- elseif (LINK_STATIC AND VCPKG_TRIPLET)
203- find_package (protobuf REQUIRED)
204- message (STATUS "Found protobuf static library: " ${Protobuf_LIBRARIES} )
205- find_library (ZLIB_LIBRARIES NAMES zlib z)
206- if (ZLIB_LIBRARIES)
207- message (STATUS "Found zlib static library: " ${ZLIB_LIBRARIES} )
208- else ()
209- message (FATAL_ERROR "Failed to find zlib static library" )
210- endif ()
211- find_library (CURL_LIBRARIES NAMES libcurl)
212- if (CURL_LIBRARIES)
213- message (STATUS "Found libcurl: ${CURL_LIBRARIES} " )
214- else ()
215- message (FATAL_ERROR "Cannot find libcurl" )
216- endif ()
217- find_library (LIB_ZSTD zstd)
218- if (LIB_ZSTD)
219- message (STATUS "Found ZSTD library: ${LIB_ZSTD} " )
220- endif ()
221- find_library (LIB_SNAPPY NAMES snappy)
222- if (LIB_SNAPPY)
223- message (STATUS "Found Snappy library: ${LIB_SNAPPY} " )
224- endif ()
225198else ()
226199 if (MSVC AND (${CMAKE_BUILD_TYPE} STREQUAL Debug))
227200 find_library (LIB_ZSTD zstdd HINTS "${VCPKG_DEBUG_ROOT} /lib" )
@@ -238,7 +211,7 @@ else()
238211 find_library (LOG4CXX_LIBRARY_PATH log4cxx)
239212 find_path (LOG4CXX_INCLUDE_PATH log4cxx/logger.h)
240213 endif (USE_LOG4CXX)
241- endif ()
214+ endif (LINK_STATIC )
242215
243216if (Boost_MAJOR_VERSION EQUAL 1 AND Boost_MINOR_VERSION LESS 69)
244217 # Boost System does not require linking since 1.69
@@ -247,15 +220,15 @@ if (Boost_MAJOR_VERSION EQUAL 1 AND Boost_MINOR_VERSION LESS 69)
247220endif ()
248221
249222if (MSVC )
250- set (BOOST_COMPONENTS ${BOOST_COMPONENTS} date_time)
223+ set (BOOST_COMPONENTS ${BOOST_COMPONENTS} date_time)
251224endif ()
252225
253226if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9)
254227 # GCC 4.8.2 implementation of std::regex is buggy
255228 set (BOOST_COMPONENTS ${BOOST_COMPONENTS} regex )
256229 set (CMAKE_CXX_FLAGS " -DPULSAR_USE_BOOST_REGEX" )
257230 MESSAGE (STATUS "Using Boost::Regex" )
258- elseif (CMAKE_COMPILER_IS_GNUCC )
231+ else ( )
259232 MESSAGE (STATUS "Using std::regex" )
260233 # Turn on color error messages and show additional help with errors (only available in GCC v4.9+):
261234 add_compile_options (-fdiagnostics-show-option -fdiagnostics-color)
@@ -322,7 +295,7 @@ include_directories(
322295
323296set (COMMON_LIBS
324297 ${COMMON_LIBS}
325- ${CMAKE_THREAD_LIBS_INIT}
298+ Threads::Threads
326299 ${Boost_REGEX_LIBRARY}
327300 ${Boost_SYSTEM_LIBRARY}
328301 ${Boost_DATE_TIME_LIBRARY}
@@ -334,25 +307,13 @@ set(COMMON_LIBS
334307 ${CMAKE_DL_LIBS}
335308)
336309
337- if (MSVC )
338- set (COMMON_LIBS
339- ${COMMON_LIBS}
340- ${Boost_DATE_TIME_LIBRARY}
341- wldap32.lib
342- Normaliz.lib)
343- if (LINK_STATIC)
344- # add external dependencies of libcurl
345- set (COMMON_LIBS ${COMMON_LIBS} ws2_32.lib crypt32.lib)
346- # the default compile options have /MD, which cannot be used to build DLLs that link static libraries
347- string (REGEX REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG} )
348- string (REGEX REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE} )
349- string (REGEX REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO} )
350- message (STATUS "CMAKE_CXX_FLAGS_DEBUG: " ${CMAKE_CXX_FLAGS_DEBUG} )
351- message (STATUS "CMAKE_CXX_FLAGS_RELEASE: " ${CMAKE_CXX_FLAGS_RELEASE} )
352- message (STATUS "CMAKE_CXX_FLAGS_RELWITHDEBINFO: " ${CMAKE_CXX_FLAGS_RELWITHDEBINFO} )
353- endif ()
354- else ()
310+ if (NOT MSVC )
355311 set (COMMON_LIBS ${COMMON_LIBS} m)
312+ else ()
313+ set (COMMON_LIBS
314+ ${COMMON_LIBS}
315+ wldap32.lib
316+ Normaliz.lib)
356317endif ()
357318
358319if (USE_LOG4CXX)
0 commit comments