diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/mongo-c-driver/portfile.cmake | |
Diffstat (limited to 'vcpkg/ports/mongo-c-driver/portfile.cmake')
| -rw-r--r-- | vcpkg/ports/mongo-c-driver/portfile.cmake | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/vcpkg/ports/mongo-c-driver/portfile.cmake b/vcpkg/ports/mongo-c-driver/portfile.cmake new file mode 100644 index 0000000..ab00b38 --- /dev/null +++ b/vcpkg/ports/mongo-c-driver/portfile.cmake @@ -0,0 +1,106 @@ +# 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 "${VERSION}" + SHA512 2f751bf33410f084e083fc73d8ebb138e40c956e9bccb2ca460d33ab5e6b75793e1910defb1d5faad849a9668e0afc5024179ad323beacd75a12538f2abda270 + HEAD_REF master + PATCHES + disable-dynamic-when-static.patch + fix-dependencies.patch + fix-include-directory.patch + fix-mingw.patch + remove_abs_patch.cmake +) +file(WRITE "${SOURCE_PATH}/VERSION_CURRENT" "${VERSION}") +file(TOUCH "${SOURCE_PATH}/src/utf8proc-editable") +file(GLOB vendored_libs "${SOURCE_PATH}/src/utf8proc-*" "${SOURCE_PATH}/src/zlib-*/*.h") +file(REMOVE_RECURSE ${vendored_libs}) + +# Cannot use string(COMPARE EQUAL ...) +set(ENABLE_STATIC OFF) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + set(ENABLE_STATIC ON) +endif() + +vcpkg_check_features(OUT_FEATURE_OPTIONS OPTIONS + FEATURES + snappy ENABLE_SNAPPY + zstd ENABLE_ZSTD +) + +if("openssl" IN_LIST FEATURES) + list(APPEND OPTIONS -DENABLE_SSL=OPENSSL) +elseif(VCPKG_TARGET_IS_WINDOWS) + list(APPEND OPTIONS -DENABLE_SSL=WINDOWS) +elseif(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) + list(APPEND OPTIONS -DENABLE_SSL=DARWIN) +else() + list(APPEND OPTIONS -DENABLE_SSL=OFF) +endif() + +if(VCPKG_TARGET_IS_ANDROID) + vcpkg_list(APPEND OPTIONS -DENABLE_SRV=OFF) +endif() + +vcpkg_find_acquire_program(PKGCONFIG) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + DISABLE_PARALLEL_CONFIGURE + OPTIONS + ${OPTIONS} + "-DBUILD_VERSION=${VERSION}" + -DUSE_BUNDLED_UTF8PROC=OFF + -DUSE_SYSTEM_LIBBSON=ON + -DENABLE_CLIENT_SIDE_ENCRYPTION=OFF + -DENABLE_EXAMPLES=OFF + -DENABLE_SASL=OFF + -DENABLE_SHM_COUNTERS=OFF + -DENABLE_STATIC=${ENABLE_STATIC} + -DENABLE_TESTS=OFF + -DBUILD_TESTING=OFF + -DENABLE_UNINSTALL=OFF + -DENABLE_ZLIB=SYSTEM + "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" + MAYBE_UNUSED_VARIABLES + PKG_CONFIG_EXECUTABLE +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +if("snappy" IN_LIST FEATURES AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libmongoc-static-1.0.pc" " -lSnappy::snappy" "") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libmongoc-static-1.0.pc" "Requires: " "Requires: snappy ") + if(NOT VCPKG_BUILD_TYPE) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libmongoc-static-1.0.pc" " -lSnappy::snappy" "") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libmongoc-static-1.0.pc" "Requires: " "Requires: snappy ") + endif() +endif() +vcpkg_fixup_pkgconfig() + +# deprecated +vcpkg_cmake_config_fixup(PACKAGE_NAME libmongoc-1.0 CONFIG_PATH "lib/cmake/libmongoc-1.0" DO_NOT_DELETE_PARENT_CONFIG_PATH) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + vcpkg_cmake_config_fixup(PACKAGE_NAME libmongoc-static-1.0 CONFIG_PATH "lib/cmake/libmongoc-static-1.0" DO_NOT_DELETE_PARENT_CONFIG_PATH) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/mongoc/mongoc-macros.h" + "#define MONGOC_MACROS_H" "#define MONGOC_MACROS_H\n#ifndef MONGOC_STATIC\n#define MONGOC_STATIC\n#endif") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/libmongoc-1.0/libmongoc-1.0-config.cmake" "mongoc_shared" "mongoc_static") +endif() +# recommended +vcpkg_cmake_config_fixup(PACKAGE_NAME mongoc-1.0 CONFIG_PATH "lib/cmake/mongoc-1.0") + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" +) + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") + +vcpkg_install_copyright( + FILE_LIST + "${SOURCE_PATH}/COPYING" + "${SOURCE_PATH}/THIRD_PARTY_NOTICES" + "${SOURCE_PATH}/src/libmongoc/THIRD_PARTY_NOTICES" +) |