blob: 732576f14f2034adefaac359952ba4b2b43d575c [file] [log] [blame]
diff --git a/cmake/ThirdPartyDependencies.cmake b/cmake/ThirdPartyDependencies.cmake
index f02af02..f83c181 100644
--- a/cmake/ThirdPartyDependencies.cmake
+++ b/cmake/ThirdPartyDependencies.cmake
@@ -3,73 +3,30 @@
include(cmake/CPM.cmake)
# https://cmake.org/cmake/help/v3.28/policy/CMP0063.html
set(CMAKE_POLICY_DEFAULT_CMP0063 NEW)
function(declare_system_library target)
message(STATUS "Declaring system library ${target}")
get_target_property(target_aliased_name ${target} ALIASED_TARGET)
if(target_aliased_name)
set(target ${target_aliased_name})
endif()
set_target_properties(${target} PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES
$<TARGET_PROPERTY:${target},INTERFACE_INCLUDE_DIRECTORIES>)
endfunction()
-if(NOT TARGET fmt::fmt)
- # https://github.com/fmtlib/fmt/releases
- cpmaddpackage(
- NAME
- fmt
- GIT_TAG
- 11.0.1
- VERSION
- 11.0.1
- GITHUB_REPOSITORY
- "fmtlib/fmt"
- EXCLUDE_FROM_ALL ON
- OPTIONS
- "FMT_INSTALL OFF"
- # Unicode support for MSVC enabled in CompilerWarnings.cmake
- "FMT_UNICODE OFF"
- "FMT_DOC OFF"
- "BUILD_SHARED_LIBS OFF"
- "CMAKE_C_VISIBILITY_PRESET hidden"
- "CMAKE_CXX_VISIBILITY_PRESET hidden"
- "CMAKE_POSITION_INDEPENDENT_CODE ON")
-endif()
-
-if(NOT TARGET spdlog::spdlog)
- # https://github.com/gabime/spdlog/releases
- cpmaddpackage(
- NAME
- spdlog
- VERSION
- 1.14.1
- GITHUB_REPOSITORY
- "gabime/spdlog"
- EXCLUDE_FROM_ALL ON
- OPTIONS
- "SPDLOG_INSTALL OFF"
- "BUILD_SHARED_LIBS OFF"
- "CMAKE_C_VISIBILITY_PRESET hidden"
- "CMAKE_CXX_VISIBILITY_PRESET hidden"
- "CMAKE_POSITION_INDEPENDENT_CODE ON"
- "SPDLOG_BUILD_SHARED OFF"
- "SPDLOG_FMT_EXTERNAL ON")
-endif()
-
if(NOT TARGET Microsoft.GSL::GSL)
# https://github.com/microsoft/GSL/releases
cpmaddpackage(
NAME
gsl
VERSION
4.0.0
GITHUB_REPOSITORY
"microsoft/gsl"
EXCLUDE_FROM_ALL ON
OPTIONS
"GSL_INSTALL OFF"
"CMAKE_C_VISIBILITY_PRESET hidden"
"CMAKE_CXX_VISIBILITY_PRESET hidden"
"CMAKE_POSITION_INDEPENDENT_CODE ON")
@@ -159,93 +116,24 @@ if(NOT TARGET taocpp::json)
"CMAKE_POSITION_INDEPENDENT_CODE ON"
"BUILD_SHARED_LIBS OFF"
"PEGTL_INSTALL ${COUCHBASE_CXX_CLIENT_INSTALL}"
"PEGTL_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/pegtl"
"PEGTL_INSTALL_DOC_DIR ${CMAKE_INSTALL_DATAROOTDIR}/doc/tao/pegtl"
"PEGTL_BUILD_TESTS OFF"
"PEGTL_BUILD_EXAMPLES OFF"
"PEGTL_USE_BOOST_FILESYSTEM OFF"
"TAOCPP_JSON_INSTALL ${COUCHBASE_CXX_CLIENT_INSTALL}"
"TAOCPP_JSON_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/taocpp-json"
"TAOCPP_JSON_INSTALL_DOC_DIR ${CMAKE_INSTALL_DATAROOTDIR}/doc/tao/json"
"TAOCPP_JSON_BUILD_TESTS OFF"
"TAOCPP_JSON_BUILD_EXAMPLES OFF")
endif()
-
-if(NOT TARGET asio::asio)
- # https://github.com/chriskohlhoff/asio/tags
- cpmaddpackage(
- NAME
- asio
- GIT_TAG
- asio-1-31-0
- VERSION
- 1.31.0
- GITHUB_REPOSITORY
- "chriskohlhoff/asio"
- EXCLUDE_FROM_ALL ON)
-endif()
-
-# ASIO doesn't use CMake, we have to configure it manually. Extra notes for using on Windows:
-#
-# 1) If _WIN32_WINNT is not set, ASIO assumes _WIN32_WINNT=0x0501, i.e. Windows XP target, which is definitely not the
-# platform which most users target.
-#
-# 2) WIN32_LEAN_AND_MEAN is defined to make Winsock2 work.
-if(asio_ADDED)
- add_library(asio STATIC ${asio_SOURCE_DIR}/asio/src/asio.cpp ${asio_SOURCE_DIR}/asio/src/asio_ssl.cpp)
-
- target_include_directories(asio SYSTEM PUBLIC ${asio_SOURCE_DIR}/asio/include)
- target_compile_definitions(asio PRIVATE ASIO_STANDALONE=1 ASIO_NO_DEPRECATED=1 ASIO_SEPARATE_COMPILATION=1)
- target_link_libraries(asio PRIVATE Threads::Threads OpenSSL::SSL OpenSSL::Crypto)
- set_target_properties(
- asio
- PROPERTIES C_VISIBILITY_PRESET hidden
- CXX_VISIBILITY_PRESET hidden
- POSITION_INDEPENDENT_CODE TRUE)
-
- if(WIN32)
- # macro see @ https://stackoverflow.com/a/40217291/1746503
- macro(get_win32_winnt version)
- if(CMAKE_SYSTEM_VERSION)
- set(ver ${CMAKE_SYSTEM_VERSION})
- string(REGEX MATCH "^([0-9]+).([0-9])" ver ${ver})
- string(REGEX MATCH "^([0-9]+)" verMajor ${ver})
- # Check for Windows 10, b/c we'll need to convert to hex 'A'.
- if("${verMajor}" MATCHES "10")
- set(verMajor "A")
- string(REGEX REPLACE "^([0-9]+)" ${verMajor} ver ${ver})
- endif("${verMajor}" MATCHES "10")
- # Remove all remaining '.' characters.
- string(REPLACE "." "" ver ${ver})
- # Prepend each digit with a zero.
- string(REGEX REPLACE "([0-9A-Z])" "0\\1" ver ${ver})
- set(${version} "0x${ver}")
- endif()
- endmacro()
-
- if(NOT DEFINED _WIN32_WINNT)
- get_win32_winnt(ver)
- set(_WIN32_WINNT ${ver})
- endif()
-
- message(STATUS "Set _WIN32_WINNT=${_WIN32_WINNT}")
-
- target_compile_definitions(asio INTERFACE _WIN32_WINNT=${_WIN32_WINNT} WIN32_LEAN_AND_MEAN)
- endif()
-
- add_library(asio::asio ALIAS asio)
-endif()
-
add_library(jsonsl OBJECT ${PROJECT_SOURCE_DIR}/third_party/jsonsl/jsonsl.c)
set_target_properties(jsonsl PROPERTIES C_VISIBILITY_PRESET hidden POSITION_INDEPENDENT_CODE TRUE)
target_include_directories(jsonsl SYSTEM PUBLIC ${PROJECT_SOURCE_DIR}/third_party/jsonsl)
declare_system_library(snappy)
declare_system_library(llhttp::llhttp)
declare_system_library(hdr_histogram_static)
declare_system_library(Microsoft.GSL::GSL)
-declare_system_library(spdlog::spdlog)
-declare_system_library(fmt::fmt)
-declare_system_library(asio)
declare_system_library(taocpp::json)