early-access version 2853

This commit is contained in:
pineappleEA
2022-07-23 03:01:36 +02:00
parent 1f2b5081b5
commit 1f111bb69c
8955 changed files with 418777 additions and 999 deletions

View File

@@ -0,0 +1,15 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7ff8bbf..32c2e00 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -114,8 +114,8 @@ if (BUILD_VERSION STREQUAL "0.0.0")
file (WRITE ${PROJECT_SOURCE_DIR}/VERSION_CURRENT ${BUILD_VERSION})
endif ()
else ()
- message ("storing BUILD_VERSION ${BUILD_VERSION} in file VERSION_CURRENT for later use")
- file (WRITE ${PROJECT_SOURCE_DIR}/VERSION_CURRENT ${BUILD_VERSION})
+ #message ("storing BUILD_VERSION ${BUILD_VERSION} in file VERSION_CURRENT for later use")
+ #file (WRITE ${PROJECT_SOURCE_DIR}/VERSION_CURRENT ${BUILD_VERSION})
endif ()
include (LoadVersion)

View File

@@ -0,0 +1,42 @@
diff --git a/src/libmongoc/CMakeLists.txt b/src/libmongoc/CMakeLists.txt
index de96ab864..5b7f448f2 100644
--- a/src/libmongoc/CMakeLists.txt
+++ b/src/libmongoc/CMakeLists.txt
@@ -725,6 +725,7 @@ if (MONGOC_ENABLE_MONGODB_AWS_AUTH)
endif()
endif ()
+if (NOT MONGOC_ENABLE_STATIC_BUILD)
add_library (mongoc_shared SHARED ${SOURCES} ${HEADERS} ${HEADERS_FORWARDING})
set_target_properties (mongoc_shared PROPERTIES CMAKE_CXX_VISIBILITY_PRESET hidden)
target_link_libraries (mongoc_shared PRIVATE ${LIBRARIES} PUBLIC mongo::bson_shared)
@@ -745,7 +746,7 @@ target_compile_definitions (mongoc_shared PRIVATE MONGOC_COMPILATION ${KMS_MSG_D
set_target_properties (mongoc_shared PROPERTIES VERSION 0.0.0 SOVERSION 0)
set_target_properties (mongoc_shared PROPERTIES OUTPUT_NAME "${MONGOC_OUTPUT_BASENAME}-${MONGOC_API_VERSION}")
-if (MONGOC_ENABLE_STATIC_BUILD)
+else ()
add_library (mongoc_static STATIC ${SOURCES} ${HEADERS} ${HEADERS_FORWARDING})
target_link_libraries (mongoc_static ${STATIC_LIBRARIES} mongo::bson_static)
if (NOT WIN32 AND ENABLE_PIC)
@@ -778,7 +779,11 @@ if (ENABLE_APPLE_FRAMEWORK)
endif ()
add_executable (mongoc-stat ${PROJECT_SOURCE_DIR}/../../src/tools/mongoc-stat.c)
+if (NOT MONGOC_ENABLE_STATIC_BUILD)
target_link_libraries (mongoc-stat mongoc_shared ${LIBRARIES})
+else()
+target_link_libraries (mongoc-stat mongoc_static ${LIBRARIES})
+endif()
# mongoc-stat works if shared memory performance counters are enabled.
if (ENABLE_SHM_COUNTERS STREQUAL "ON")
@@ -1040,7 +1045,7 @@ file (COPY ${PROJECT_SOURCE_DIR}/tests/x509gen DESTINATION ${PROJECT_BINARY_DIR}
file (COPY ${PROJECT_SOURCE_DIR}/tests/release_files DESTINATION ${PROJECT_BINARY_DIR}/tests)
if (MONGOC_ENABLE_STATIC_INSTALL)
- set (TARGETS_TO_INSTALL mongoc_shared mongoc_static)
+ set (TARGETS_TO_INSTALL mongoc_static)
else ()
set (TARGETS_TO_INSTALL mongoc_shared)
endif ()

View File

@@ -0,0 +1,24 @@
diff --git a/src/libmongoc/CMakeLists.txt b/src/libmongoc/CMakeLists.txt
index 5b7f448f2..8881f5194 100644
--- a/src/libmongoc/CMakeLists.txt
+++ b/src/libmongoc/CMakeLists.txt
@@ -729,6 +729,9 @@ if (NOT MONGOC_ENABLE_STATIC_BUILD)
add_library (mongoc_shared SHARED ${SOURCES} ${HEADERS} ${HEADERS_FORWARDING})
set_target_properties (mongoc_shared PROPERTIES CMAKE_CXX_VISIBILITY_PRESET hidden)
target_link_libraries (mongoc_shared PRIVATE ${LIBRARIES} PUBLIC mongo::bson_shared)
+if (WIN32)
+ target_link_libraries (mongoc_shared PRIVATE Advapi32)
+endif()
target_include_directories (mongoc_shared BEFORE PUBLIC ${MONGOC_INTERNAL_INCLUDE_DIRS})
target_include_directories (mongoc_shared PRIVATE ${ZLIB_INCLUDE_DIRS})
target_include_directories (mongoc_shared PRIVATE ${LIBMONGOCRYPT_INCLUDE_DIRECTORIES})
@@ -749,6 +752,9 @@ set_target_properties (mongoc_shared PROPERTIES OUTPUT_NAME "${MONGOC_OUTPUT_BAS
else ()
add_library (mongoc_static STATIC ${SOURCES} ${HEADERS} ${HEADERS_FORWARDING})
target_link_libraries (mongoc_static ${STATIC_LIBRARIES} mongo::bson_static)
+ if (WIN32)
+ target_link_libraries (mongoc_static Advapi32)
+ endif()
if (NOT WIN32 AND ENABLE_PIC)
target_compile_options (mongoc_static PUBLIC -fPIC)
message ("Adding -fPIC to compilation of mongoc_static components")

View File

@@ -0,0 +1,176 @@
diff --git a/src/libmongoc/CMakeLists.txt b/src/libmongoc/CMakeLists.txt
index 8881f5194..c366f160a 100644
--- a/src/libmongoc/CMakeLists.txt
+++ b/src/libmongoc/CMakeLists.txt
@@ -58,8 +58,9 @@ configure_file (
set (ZLIB_INCLUDE_DIRS "")
if (ENABLE_ZLIB MATCHES "SYSTEM|AUTO")
message (STATUS "Searching for zlib CMake packages")
- include (FindZLIB)
+ find_package(ZLIB REQUIRED)
if (ZLIB_FOUND)
+ set(VCPKG_ZLIB_LIBRARIES "ZLIB::ZLIB")
message ("-- zlib found version \"${ZLIB_VERSION_STRING}\"")
message ("-- zlib include path \"${ZLIB_INCLUDE_DIRS}\"")
message ("-- zlib libraries \"${ZLIB_LIBRARIES}\"")
@@ -100,32 +101,31 @@ endif ()
if (NOT ENABLE_ZSTD STREQUAL OFF)
message (STATUS "Searching for compression library zstd")
- find_package(PkgConfig)
- pkg_check_modules (ZSTD libzstd)
+ find_package(zstd CONFIG REQUIRED)
- if (NOT ZSTD_FOUND)
+ if (NOT zstd_FOUND)
if (ENABLE_ZSTD MATCHES "ON")
message (FATAL_ERROR " Not found")
else ()
message (STATUS " Not found")
endif ()
# The compression format below this version isn't supported. See SERVER-43070
- elseif (${ZSTD_VERSION} VERSION_LESS "0.8.0")
+ elseif (${zstd_VERSION} VERSION_LESS "0.8.0")
if (ENABLE_ZSTD MATCHES "ON")
- message (FATAL_ERROR "Detected zstd version ${ZSTD_VERSION} but version 0.8.0 required")
+ message (FATAL_ERROR "Detected zstd version ${zstd_VERSION} but version 0.8.0 required")
else ()
- message (STATUS "Detected zstd version ${ZSTD_VERSION} but version 0.8.0 required")
+ message (STATUS "Detected zstd version ${zstd_VERSION} but version 0.8.0 required")
endif ()
else ()
- message (STATUS " Found zstd version ${ZSTD_VERSION} in ${ZSTD_INCLUDE_DIRS}")
+ message (STATUS " Found zstd version ${zstd_VERSION} in ${ZSTD_INCLUDE_DIRS}")
set (MONGOC_ENABLE_COMPRESSION 1)
set (MONGOC_ENABLE_COMPRESSION_ZSTD 1)
include_directories (${ZSTD_INCLUDE_DIRS})
- if (${CMAKE_VERSION} VERSION_LESS "3.12.0")
- set (MONGOC_ZSTD_LIBRARIES ${ZSTD_LIBRARIES})
+ if (MONGOC_ENABLE_STATIC_BUILD)
+ set (MONGOC_ZSTD_LIBRARIES "zstd::libzstd_static")
else ()
- set (MONGOC_ZSTD_LIBRARIES ${ZSTD_LINK_LIBRARIES})
+ set (MONGOC_ZSTD_LIBRARIES "zstd::libzstd_shared")
endif ()
endif()
endif()
@@ -134,8 +134,8 @@ if (NOT ENABLE_SSL STREQUAL OFF)
# Try OpenSSL automatically everywhere but Mac and Windows.
if (ENABLE_SSL STREQUAL "OPENSSL"
OR (NOT APPLE AND NOT WIN32 AND ENABLE_SSL STREQUAL "AUTO"))
- # Sets OPENSSL_FOUND on success.
- include (FindOpenSSL)
+ # Sets OpenSSL_FOUND on success.
+ find_package(OpenSSL REQUIRED)
endif ()
if (ENABLE_SSL STREQUAL LIBRESSL)
@@ -171,7 +171,7 @@ if (NOT ENABLE_SSL STREQUAL OFF)
endif ()
endif ()
- if (NOT OPENSSL_FOUND AND NOT SECURE_TRANSPORT AND NOT SECURE_CHANNEL AND NOT LIBRESSL)
+ if (NOT OpenSSL_FOUND AND NOT SECURE_TRANSPORT AND NOT SECURE_CHANNEL AND NOT LIBRESSL)
if (ENABLE_SSL STREQUAL AUTO)
set (ENABLE_SSL OFF)
else ()
@@ -180,8 +180,8 @@ if (NOT ENABLE_SSL STREQUAL OFF)
endif ()
endif ()
-if (OPENSSL_FOUND)
- if (WIN32 AND OPENSSL_VERSION GREATER 1.1 AND NOT
+if (OpenSSL_FOUND)
+ if (WIN32 AND OpenSSL_VERSION GREATER 1.1 AND NOT
${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.7)
message (FATAL_ERROR "Building against OpenSSL 1.1.0 and later requires CMake 3.7 or later (hint:"
" You can also compile against Windows Secure Transport with -DENABLE_SSL=WINDOWS")
@@ -220,7 +220,7 @@ elseif (LIBRESSL)
endif ()
if (ENABLE_CRYPTO_SYSTEM_PROFILE)
- if (OPENSSL_FOUND)
+ if (OpenSSL_FOUND)
set (MONGOC_ENABLE_CRYPTO_SYSTEM_PROFILE 1)
else ()
message (FATAL_ERROR "ENABLE_CRYPTO_SYSTEM_PROFILE only available with OpenSSL")
@@ -349,10 +349,10 @@ if (ENABLE_TRACING)
endif ()
# Sets SNAPPY_LIBRARIES and SNAPPY_INCLUDE_DIRS.
-include (FindSnappy)
-if (SNAPPY_INCLUDE_DIRS)
+if (ENABLE_SNAPPY)
+ find_package(Snappy CONFIG REQUIRED)
set (MONGOC_ENABLE_COMPRESSION 1)
- include_directories ("${SNAPPY_INCLUDE_DIRS}")
+ set (VCPKG_SNAPPY_LIBRARIES "Snappy::snappy")
endif ()
set (MONGOC_ENABLE_SHM_COUNTERS 0)
@@ -393,6 +393,7 @@ if (NOT ENABLE_ICU STREQUAL OFF)
endif()
if (ICU_FOUND)
set (MONGOC_ENABLE_ICU 1)
+ set(VCPKG_ICU_LIBRARIES "ICU::uc")
include_directories ("${ICU_INCLUDE_DIR}")
elseif (ENABLE_ICU STREQUAL ON)
message (FATAL_ERROR "No ICU library found. If ICU is installed in a non-standard directory, define ICU_ROOT as the ICU installation path.")
@@ -623,7 +624,7 @@ if (NOT ENABLE_SSL STREQUAL OFF)
${PROJECT_SOURCE_DIR}/src/mongoc/mongoc-ssl.c
)
- if (OPENSSL_FOUND)
+ if (OpenSSL_FOUND)
message (STATUS "Compiling against OpenSSL")
set (SOURCES ${SOURCES}
${PROJECT_SOURCE_DIR}/src/mongoc/mongoc-crypto-openssl.c
@@ -633,7 +634,7 @@ if (NOT ENABLE_SSL STREQUAL OFF)
${PROJECT_SOURCE_DIR}/src/mongoc/mongoc-openssl.c
${PROJECT_SOURCE_DIR}/src/mongoc/mongoc-ocsp-cache.c
)
- set (SSL_LIBRARIES ${OPENSSL_LIBRARIES})
+ set (SSL_LIBRARIES "OpenSSL::SSL")
include_directories (${OPENSSL_INCLUDE_DIR})
if (WIN32)
set (SSL_LIBRARIES ${SSL_LIBRARIES} crypt32.lib)
@@ -696,11 +697,11 @@ endif ()
set (LIBRARIES
${SASL_LIBRARIES} ${SSL_LIBRARIES} ${SHM_LIBRARIES} ${RESOLV_LIBRARIES}
- ${SNAPPY_LIBRARIES} ${ZLIB_LIBRARIES} ${MONGOC_ZSTD_LIBRARIES} Threads::Threads ${ICU_LIBRARIES} ${LIBMONGOCRYPT_LIBRARY}
+ ${VCPKG_SNAPPY_LIBRARIES} ${VCPKG_ZLIB_LIBRARIES} ${MONGOC_ZSTD_LIBRARIES} Threads::Threads ${VCPKG_ICU_LIBRARIES} ${LIBMONGOCRYPT_LIBRARY}
)
set (STATIC_LIBRARIES
${SASL_LIBRARIES} ${SSL_LIBRARIES} ${SHM_LIBRARIES} ${RESOLV_LIBRARIES}
- ${SNAPPY_LIBRARIES} ${ZLIB_LIBRARIES} ${MONGOC_ZSTD_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${ICU_LIBRARIES} ${LIBMONGOCRYPT_LIBRARY}
+ ${VCPKG_SNAPPY_LIBRARIES} ${VCPKG_ZLIB_LIBRARIES} ${MONGOC_ZSTD_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${VCPKG_ICU_LIBRARIES} ${LIBMONGOCRYPT_LIBRARY}
)
if (WIN32)
diff --git a/src/libmongoc/src/mongoc-config.cmake b/src/libmongoc/src/mongoc-config.cmake
index 9224178e6..6e449c109 100644
--- a/src/libmongoc/src/mongoc-config.cmake
+++ b/src/libmongoc/src/mongoc-config.cmake
@@ -1,3 +1,20 @@
include(CMakeFindDependencyMacro)
find_dependency(bson-1.0 @MONGOC_MAJOR_VERSION@.@MONGOC_MINOR_VERSION@.@MONGOC_MICRO_VERSION@ CONFIG REQUIRED)
+
+if("@Threads_FOUND@")
+ find_dependency(Threads REQUIRED)
+endif()
+if("@ZLIB_FOUND@")
+ find_dependency(ZLIB REQUIRED)
+endif()
+if("@zstd_FOUND@")
+ find_dependency(zstd CONFIG REQUIRED)
+endif()
+if("@OpenSSL_FOUND@")
+ find_dependency(OpenSSL REQUIRED)
+endif()
+if("@Snappy_FOUND@")
+ find_dependency(Snappy CONFIG REQUIRED)
+endif()
+
include("${CMAKE_CURRENT_LIST_DIR}/mongoc-targets.cmake")

View File

@@ -0,0 +1,72 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 91fd663da..fc9565770 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -179,14 +179,6 @@ if (ENABLE_BSON STREQUAL SYSTEM)
SET (ENABLE_TESTS OFF)
set (USING_SYSTEM_BSON TRUE)
- if (NOT TARGET mongo::bson_shared)
- message (FATAL_ERROR "System libbson built without shared library target")
- endif ()
- set (BSON_LIBRARIES mongo::bson_shared)
- if (NOT TARGET mongo::bson_static)
- message (FATAL_ERROR "System libbson built without static library target")
- endif ()
- set (BSON_STATIC_LIBRARIES mongo::bson_static)
endif ()
unset (dist_generated CACHE)
diff --git a/src/libmongoc/CMakeLists.txt b/src/libmongoc/CMakeLists.txt
index af5a398a9..de96ab864 100644
--- a/src/libmongoc/CMakeLists.txt
+++ b/src/libmongoc/CMakeLists.txt
@@ -727,7 +727,7 @@ endif ()
add_library (mongoc_shared SHARED ${SOURCES} ${HEADERS} ${HEADERS_FORWARDING})
set_target_properties (mongoc_shared PROPERTIES CMAKE_CXX_VISIBILITY_PRESET hidden)
-target_link_libraries (mongoc_shared PRIVATE ${LIBRARIES} PUBLIC ${BSON_LIBRARIES})
+target_link_libraries (mongoc_shared PRIVATE ${LIBRARIES} PUBLIC mongo::bson_shared)
target_include_directories (mongoc_shared BEFORE PUBLIC ${MONGOC_INTERNAL_INCLUDE_DIRS})
target_include_directories (mongoc_shared PRIVATE ${ZLIB_INCLUDE_DIRS})
target_include_directories (mongoc_shared PRIVATE ${LIBMONGOCRYPT_INCLUDE_DIRECTORIES})
@@ -747,7 +747,7 @@ set_target_properties (mongoc_shared PROPERTIES OUTPUT_NAME "${MONGOC_OUTPUT_BAS
if (MONGOC_ENABLE_STATIC_BUILD)
add_library (mongoc_static STATIC ${SOURCES} ${HEADERS} ${HEADERS_FORWARDING})
- target_link_libraries (mongoc_static ${STATIC_LIBRARIES} ${BSON_STATIC_LIBRARIES})
+ target_link_libraries (mongoc_static ${STATIC_LIBRARIES} mongo::bson_static)
if (NOT WIN32 AND ENABLE_PIC)
target_compile_options (mongoc_static PUBLIC -fPIC)
message ("Adding -fPIC to compilation of mongoc_static components")
diff --git a/src/libmongoc/build/cmake/libmongoc-static-1.0-config.cmake.in b/src/libmongoc/build/cmake/libmongoc-static-1.0-config.cmake.in
index 6f05b0c18..c23da9f61 100644
--- a/src/libmongoc/build/cmake/libmongoc-static-1.0-config.cmake.in
+++ b/src/libmongoc/build/cmake/libmongoc-static-1.0-config.cmake.in
@@ -19,7 +19,7 @@ set (MONGOC_STATIC_MINOR_VERSION @MONGOC_MINOR_VERSION@)
set (MONGOC_STATIC_MICRO_VERSION @MONGOC_MICRO_VERSION@)
set (MONGOC_STATIC_VERSION @MONGOC_VERSION@)
-find_package (libbson-static-1.0 "@MONGOC_MAJOR_VERSION@.@MONGOC_MINOR_VERSION@" REQUIRED)
+find_package (libbson-1.0 "@MONGOC_MAJOR_VERSION@.@MONGOC_MINOR_VERSION@" REQUIRED)
@PACKAGE_INIT@
@@ -57,3 +57,7 @@ foreach (LIB @SASL_LIBRARIES@ @SSL_LIBRARIES@ @SHM_LIBRARIES@ @ZLIB_LIBRARIES@
endforeach ()
set (MONGOC_STATIC_DEFINITIONS MONGOC_STATIC ${BSON_STATIC_DEFINITIONS})
+
+set (MONGOC_INCLUDE_DIRS ${MONGOC_STATIC_INCLUDE_DIRS})
+set (MONGOC_LIBRARIES ${MONGOC_STATIC_LIBRARIES})
+set (MONGOC_DEFINITIONS ${MONGOC_STATIC_DEFINITIONS})
\ No newline at end of file
diff --git a/src/libmongoc/src/mongoc-config.cmake b/src/libmongoc/src/mongoc-config.cmake
index 7fe7cf42d..9224178e6 100644
--- a/src/libmongoc/src/mongoc-config.cmake
+++ b/src/libmongoc/src/mongoc-config.cmake
@@ -1,3 +1,3 @@
include(CMakeFindDependencyMacro)
-find_dependency(bson-1.0 @MONGOC_MAJOR_VERSION@.@MONGOC_MINOR_VERSION@.@MONGOC_MICRO_VERSION@)
+find_dependency(bson-1.0 @MONGOC_MAJOR_VERSION@.@MONGOC_MINOR_VERSION@.@MONGOC_MICRO_VERSION@ CONFIG REQUIRED)
include("${CMAKE_CURRENT_LIST_DIR}/mongoc-targets.cmake")

View File

@@ -0,0 +1,13 @@
diff --git a/src/libmongoc/CMakeLists.txt b/src/libmongoc/CMakeLists.txt
index a5767ac..3656efa 100644
--- a/src/libmongoc/CMakeLists.txt
+++ b/src/libmongoc/CMakeLists.txt
@@ -998,7 +998,7 @@ else ()
endif ()
set (MONGOC_HEADER_INSTALL_DIR
- "${CMAKE_INSTALL_INCLUDEDIR}/libmongoc-${MONGOC_API_VERSION}"
+ "${CMAKE_INSTALL_INCLUDEDIR}"
)
install (

View File

@@ -0,0 +1,13 @@
diff --git a/src/libmongoc/build/cmake/libmongoc-static-1.0-config.cmake.in b/src/libmongoc/build/cmake/libmongoc-static-1.0-config.cmake.in
index c23da9f..05c03e8 100644
--- a/src/libmongoc/build/cmake/libmongoc-static-1.0-config.cmake.in
+++ b/src/libmongoc/build/cmake/libmongoc-static-1.0-config.cmake.in
@@ -30,7 +30,7 @@ list (APPEND MONGOC_STATIC_INCLUDE_DIRS ${BSON_STATIC_INCLUDE_DIRS})
# directory and the base name, but not the suffix, so we use CMake's
# find_library () to pick that up. Users can override this by configuring
# MONGOC_STATIC_LIBRARY themselves.
-find_library (MONGOC_STATIC_LIBRARY mongoc-static-1.0 PATHS "@PACKAGE_LIBRARY_INSTALL_DIRS@" NO_DEFAULT_PATH)
+find_library (MONGOC_STATIC_LIBRARY mongoc-1.0 PATHS "@PACKAGE_LIBRARY_INSTALL_DIRS@" NO_DEFAULT_PATH)
if (MSVC)
set (MONGOC_STATIC_LIB_EXT "lib")
else ()

View File

@@ -0,0 +1,124 @@
# This port needs to be updated at the same time as libbson
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO mongodb/mongo-c-driver
REF 00c59aa4a1f72e49e55b211f28650c66c542739e # 1.17.6
SHA512 9191c64def45ff268cb5d2ce08782265fb8e0567237c8d3311b91e996bd938d629578a7b50e8db29c4b3aa5bc96f93361f6d918e9cfd4861e5f5c5554cf4616d
HEAD_REF master
PATCHES
fix-dependency-libbson.patch
disable-static-when-dynamic-build.patch
fix-arm-build.patch
fix-dependencies.patch
disable-source-write.patch
fix-include-directory.patch
fix-static-cmake.patch
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
"snappy" ENABLE_SNAPPY
"icu" ENABLE_ICU
"zstd" ENABLE_ZSTD
)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
set(ENABLE_STATIC ON)
else()
set(ENABLE_STATIC OFF)
endif()
if(VCPKG_TARGET_IS_WINDOWS)
set(ENABLE_SSL "WINDOWS")
else()
set(ENABLE_SSL "OPENSSL")
endif()
if(VCPKG_TARGET_IS_ANDROID)
set(ENABLE_SRV OFF)
set(ENABLE_SHM_COUNTERS OFF)
else()
set(ENABLE_SRV AUTO)
set(ENABLE_SHM_COUNTERS AUTO)
endif()
file(READ "${CMAKE_CURRENT_LIST_DIR}/vcpkg.json" _contents)
string(JSON BUILD_VERSION GET "${_contents}" version)
file(WRITE "${SOURCE_PATH}/VERSION_CURRENT" "${BUILD_VERSION}")
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DBSON_ROOT_DIR=${CURRENT_INSTALLED_DIR}
-DENABLE_MONGOC=ON
-DENABLE_BSON=SYSTEM
-DENABLE_TESTS=OFF
-DENABLE_EXAMPLES=OFF
-DENABLE_SRV=${ENABLE_SRV}
-DENABLE_SHM_COUNTERS=${ENABLE_SHM_COUNTERS}
-DENABLE_SSL=${ENABLE_SSL}
-DENABLE_ZLIB=SYSTEM
-DENABLE_STATIC=${ENABLE_STATIC}
-DBUILD_VERSION=${BUILD_VERSION}
-DCMAKE_DISABLE_FIND_PACKAGE_PythonInterp=ON
${FEATURE_OPTIONS}
MAYBE_UNUSED_VARIABLES
CMAKE_DISABLE_FIND_PACKAGE_PythonInterp
)
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup(PACKAGE_NAME mongoc-1.0 CONFIG_PATH "lib/cmake/mongoc-1.0" DO_NOT_DELETE_PARENT_CONFIG_PATH)
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
vcpkg_cmake_config_fixup(PACKAGE_NAME libmongoc-1.0 CONFIG_PATH "lib/cmake/libmongoc-static-1.0")
else()
vcpkg_cmake_config_fixup(PACKAGE_NAME libmongoc-1.0 CONFIG_PATH "lib/cmake/libmongoc-1.0")
endif()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
# drop the __declspec(dllimport) when building static
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/mongoc/mongoc-macros.h"
"define MONGOC_API __declspec(dllimport)" "define MONGOC_API")
file(RENAME
"${CURRENT_PACKAGES_DIR}/share/libmongoc-1.0/libmongoc-static-1.0-config.cmake"
"${CURRENT_PACKAGES_DIR}/share/libmongoc-1.0/libmongoc-1.0-config.cmake")
file(RENAME
"${CURRENT_PACKAGES_DIR}/share/libmongoc-1.0/libmongoc-static-1.0-config-version.cmake"
"${CURRENT_PACKAGES_DIR}/share/libmongoc-1.0/libmongoc-1.0-config-version.cmake")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin")
endif()
# Create cmake files for _both_ find_package(mongo-c-driver) and find_package(libmongoc-static-1.0)/find_package(libmongoc-1.0)
file(READ "${CURRENT_PACKAGES_DIR}/share/libmongoc-1.0/libmongoc-1.0-config.cmake" LIBMONGOC_CONFIG_CMAKE)
# Patch: Set _IMPORT_PREFIX and replace PACKAGE_PREFIX_DIR
string(REPLACE
[[
get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE)
]]
[[
# VCPKG PATCH SET IMPORT_PREFIX
get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
if(_IMPORT_PREFIX STREQUAL "/")
set(_IMPORT_PREFIX "")
endif()
]]
LIBMONGOC_CONFIG_CMAKE "${LIBMONGOC_CONFIG_CMAKE}")
string(REPLACE [[PACKAGE_PREFIX_DIR]] [[_IMPORT_PREFIX]] LIBMONGOC_CONFIG_CMAKE "${LIBMONGOC_CONFIG_CMAKE}")
file(WRITE "${CURRENT_PACKAGES_DIR}/share/libmongoc-1.0/libmongoc-1.0-config.cmake" "${LIBMONGOC_CONFIG_CMAKE}")
file(COPY "${SOURCE_PATH}/THIRD_PARTY_NOTICES" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
vcpkg_fixup_pkgconfig()
file(REMOVE "${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/uninstall.sh")

9
externals/vcpkg/ports/mongo-c-driver/usage vendored Executable file
View File

@@ -0,0 +1,9 @@
The package mongo-c-driver is compatible with built-in CMake targets:
find_package(mongoc-1.0 CONFIG REQUIRED)
target_link_libraries(main PRIVATE mongo::mongoc_shared)
or:
find_package(mongoc-1.0 CONFIG REQUIRED)
target_link_libraries(main PRIVATE mongo::mongoc_static)

View File

@@ -0,0 +1,43 @@
{
"name": "mongo-c-driver",
"version": "1.17.6",
"port-version": 2,
"description": "Client library written in C for MongoDB.",
"homepage": "https://github.com/mongodb/mongo-c-driver",
"dependencies": [
"libbson",
{
"name": "openssl",
"platform": "!windows"
},
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
},
"zlib"
],
"features": {
"icu": {
"description": "Enable ICU support, necessary to use non-ASCII usernames or passwords",
"dependencies": [
"icu"
]
},
"snappy": {
"description": "Enables snappy compressor support",
"dependencies": [
"snappy"
]
},
"zstd": {
"description": "Enables zstd compressor support",
"dependencies": [
"zstd"
]
}
}
}