11cmake_minimum_required (VERSION 3.12)
22
3+ if (PACKAGE_MANAGER)
4+ if (PACKAGE_MANAGER NOT MATCHES "^(hunter|vcpkg)$" )
5+ message (FATAL_ERROR "PACKAGE_MANAGER must be set to 'hunter', 'vcpkg' or isn't set" )
6+ endif ()
7+ else ()
8+ set (PACKAGE_MANAGER "hunter" )
9+ if (CMAKE_TOOLCHAIN_FILE)
10+ get_filename_component (ACTUAL_NAME ${CMAKE_TOOLCHAIN_FILE} NAME )
11+ if (ACTUAL_NAME STREQUAL "vcpkg.cmake" )
12+ message (STATUS "vcpkg will be used because vcpkg.cmake has found" )
13+ set (PACKAGE_MANAGER "vcpkg" )
14+ endif ()
15+ endif ()
16+ endif ()
17+ message (STATUS "Selected package manager: ${PACKAGE_MANAGER} " )
18+
319if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.27" )
420 cmake_policy (SET CMP0144 NEW)
521endif ()
@@ -20,7 +36,9 @@ set(CMAKE_TOOLCHAIN_FILE
2036cmake_policy (SET CMP0048 NEW)
2137cmake_policy (SET CMP0135 NEW)
2238
23- include ("cmake/Hunter/init.cmake" )
39+ if (PACKAGE_MANAGER STREQUAL "hunter" )
40+ include ("cmake/Hunter/init.cmake" )
41+ endif ()
2442
2543project (libp2p VERSION 0.1.17 LANGUAGES C CXX)
2644
@@ -39,6 +57,7 @@ option(TSAN "Enable thread sanitizer" OFF)
3957option (UBSAN "Enable UB sanitizer" OFF )
4058option (EXPOSE_MOCKS "Make mocks header files visible for child projects" ON )
4159option (METRICS_ENABLED "Enable libp2p metrics" OFF )
60+ option (SQLITE_ENABLED "Enable sqlite based libp2p storage" OFF )
4261
4362include (cmake/print.cmake)
4463print("C flags: ${CMAKE_C_FLAGS} " )
@@ -59,6 +78,10 @@ if (METRICS_ENABLED)
5978 add_compile_definitions ("LIBP2P_METRICS_ENABLED" )
6079endif ()
6180
81+ if (SQLITE_ENABLED)
82+ set (SQLITE_FIND_DEP "find_dependency(SQLiteModernCpp CONFIG REQUIRED)" )
83+ endif ()
84+
6285## setup compilation flags
6386if ("${CMAKE_CXX_COMPILER_ID} " MATCHES "^(AppleClang|Clang|GNU)$" )
6487 # enable those flags
@@ -114,6 +137,9 @@ if(EXAMPLES)
114137 add_subdirectory (example)
115138endif ()
116139if (TESTING OR COVERAGE)
140+ if (PACKAGE_MANAGER STREQUAL "vcpkg" )
141+ list (APPEND VCPKG_MANIFEST_FEATURES libp2p-tests)
142+ endif ()
117143 enable_testing ()
118144 add_subdirectory (test )
119145endif ()
@@ -126,11 +152,11 @@ include(CMakePackageConfigHelpers)
126152
127153set (CONFIG_INCLUDE_DIRS ${CMAKE_INSTALL_FULL_INCLUDEDIR} /libp2p)
128154configure_package_config_file(${CMAKE_CURRENT_LIST_DIR} /cmake/libp2pConfig.cmake.in
129- ${CMAKE_CURRENT_BINARY_DIR} /libp2pConfig.cmake
130- INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/libp2p
131- )
155+ ${CMAKE_CURRENT_BINARY_DIR} /libp2pConfig.cmake
156+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/libp2p
157+ )
132158
133159install (FILES
134- ${CMAKE_CURRENT_BINARY_DIR} /libp2pConfig.cmake
135- DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/libp2p
136- )
160+ ${CMAKE_CURRENT_BINARY_DIR} /libp2pConfig.cmake
161+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/libp2p
162+ )
0 commit comments