aboutsummaryrefslogtreecommitdiff
path: root/ports/mongo-c-driver
diff options
context:
space:
mode:
authorAlexander Karatarakis <alex@karatarakis.com>2018-01-01 14:48:45 +0200
committerGitHub <noreply@github.com>2018-01-01 14:48:45 +0200
commitead35fd00a0b82fcd7e2484a5265d3f7c47130dc (patch)
tree5537cbc6a0cf68b8bd3d9d4df621ac05a26db372 /ports/mongo-c-driver
parent4ae7a5d7a9bc491c986cdc1ef88af45e3703891d (diff)
parent7f3e5e3f776811764b679470b1494264c538885a (diff)
downloadvcpkg-ead35fd00a0b82fcd7e2484a5265d3f7c47130dc.tar.gz
vcpkg-ead35fd00a0b82fcd7e2484a5265d3f7c47130dc.zip
Merge pull request #2479 from ivysnow/mongoc
[libbson, mongo-c-driver] update to 1.9.0
Diffstat (limited to 'ports/mongo-c-driver')
-rw-r--r--ports/mongo-c-driver/CONTROL2
-rw-r--r--ports/mongo-c-driver/bson.patch23
-rw-r--r--ports/mongo-c-driver/fix-uwp.patch72
-rw-r--r--ports/mongo-c-driver/portfile.cmake61
-rw-r--r--ports/mongo-c-driver/static.patch13
5 files changed, 127 insertions, 44 deletions
diff --git a/ports/mongo-c-driver/CONTROL b/ports/mongo-c-driver/CONTROL
index 4b100879a..6391682c4 100644
--- a/ports/mongo-c-driver/CONTROL
+++ b/ports/mongo-c-driver/CONTROL
@@ -1,4 +1,4 @@
Source: mongo-c-driver
-Version: 1.6.2-1
+Version: 1.9.0
Build-Depends: libbson, openssl (uwp)
Description: Client library written in C for MongoDB.
diff --git a/ports/mongo-c-driver/bson.patch b/ports/mongo-c-driver/bson.patch
deleted file mode 100644
index 6ef5451b8..000000000
--- a/ports/mongo-c-driver/bson.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/build/cmake/FindBSON.cmake b/build/cmake/FindBSON.cmake
-index 06fd82e..3ac549d 100644
---- a/build/cmake/FindBSON.cmake
-+++ b/build/cmake/FindBSON.cmake
-@@ -11,15 +11,15 @@ endif ()
-
- find_path(BSON_INCLUDE_DIR
- NAMES
-- libbson-1.0/bson.h
-+ bson.h
- HINTS
- ${BSON_ROOT_DIR}
- PATH_SUFFIXES
- include
-+ libbson-1.0
-+ include/libbson-1.0
- )
-
--set(BSON_INCLUDE_DIR "${BSON_INCLUDE_DIR}/libbson-1.0")
--
- find_library(BSON
- NAMES
- "bson-1.0"
diff --git a/ports/mongo-c-driver/fix-uwp.patch b/ports/mongo-c-driver/fix-uwp.patch
index 13c0a2299..59d67c6be 100644
--- a/ports/mongo-c-driver/fix-uwp.patch
+++ b/ports/mongo-c-driver/fix-uwp.patch
@@ -1,8 +1,72 @@
-diff --git a/src/mongoc/mongoc-gridfs-file.c b/src/mongoc/mongoc-gridfs-file.c
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5beb610..7e74ff7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -55,6 +55,7 @@
+
+ include(MaintainerFlags)
+
++if ((NOT ENABLE_STATIC STREQUAL ON) AND (NOT ENABLE_STATIC STREQUAL AUTO))
+ # The input variable BSON_ROOT_DIR is respected for backwards compatibility,
+ # but you should use the standard CMAKE_PREFIX_PATH instead.
+ message (STATUS "Searching for libbson CMake packages")
+@@ -67,12 +68,14 @@
+ message ("-- libbson found version \"${BSON_VERSION}\"")
+ message ("-- libbson include path \"${BSON_INCLUDE_DIRS}\"")
+ message ("-- libbson libraries \"${BSON_LIBRARIES}\"")
++endif ()
+
+ if (ENABLE_STATIC STREQUAL ON OR ENABLE_STATIC STREQUAL AUTO)
+ find_package (libbson-static-1.0
+ "${MONGOC_MAJOR_VERSION}.${MONGOC_MINOR_VERSION}.${MONGOC_MICRO_VERSION}"
+ HINTS
+- ${BSON_ROOT_DIR})
++ ${BSON_ROOT_DIR}
++ REQUIRED)
+
+ if (ENABLE_STATIC STREQUAL ON AND NOT BSON_STATIC_LIBRARY)
+ message (FATAL_ERROR "Static libbson not found. Pass -DENABLE_STATIC=OFF")
+@@ -627,6 +630,7 @@
+ set (LIBS ${LIBS} ws2_32)
+ endif()
+
++if (NOT MONGOC_ENABLE_STATIC)
+ add_library(mongoc_shared SHARED ${SOURCES} ${HEADERS})
+ set_target_properties(mongoc_shared PROPERTIES CMAKE_CXX_VISIBILITY_PRESET hidden)
+ target_link_libraries (mongoc_shared ${LIBS} ${BSON_LIBRARIES})
+@@ -638,6 +642,7 @@
+ # This hack sets up standard symlink, libmongoc-1.0.so -> libmongoc-1.0.0.so
+ set_target_properties(mongoc_shared PROPERTIES VERSION 0 SOVERSION ${MONGOC_MAJOR_VERSION})
+ set_target_properties(mongoc_shared PROPERTIES OUTPUT_NAME "mongoc-${MONGOC_API_VERSION}" PREFIX "lib")
++endif ()
+
+ if (MONGOC_ENABLE_STATIC)
+ add_library(mongoc_static STATIC ${SOURCES} ${HEADERS})
+@@ -804,6 +809,7 @@
+ file(COPY ${SOURCE_DIR}/tests/x509gen DESTINATION ${PROJECT_BINARY_DIR}/tests)
+ file(COPY ${SOURCE_DIR}/tests/release_files DESTINATION ${PROJECT_BINARY_DIR}/tests)
+
++if (NOT MONGOC_ENABLE_STATIC)
+ install(
+ TARGETS mongoc_shared ${EXAMPLES}
+ LIBRARY DESTINATION lib
+@@ -810,10 +816,11 @@
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin
+ )
++endif ()
+
+ if (MONGOC_ENABLE_STATIC)
+ install(
+- TARGETS mongoc_shared mongoc_static ${EXAMPLES}
++ TARGETS mongoc_static ${EXAMPLES}
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin
index 5beb610..7e74ff7 100644
--- a/src/mongoc/mongoc-gridfs-file.c
+++ b/src/mongoc/mongoc-gridfs-file.c
-@@ -734,7 +734,7 @@ _mongoc_gridfs_file_refresh_page (mongoc_gridfs_file_t *file)
+@@ -753,7 +753,7 @@ _mongoc_gridfs_file_refresh_page (mongoc_gridfs_file_t *file)
bson_t query;
bson_t child;
bson_t opts;
@@ -15,7 +79,7 @@ diff --git a/src/mongoc/mongoc-handshake.c b/src/mongoc/mongoc-handshake.c
index 4e181bd..b274fc1 100644
--- a/src/mongoc/mongoc-handshake.c
+++ b/src/mongoc/mongoc-handshake.c
-@@ -195,7 +195,8 @@ _get_os_version (void)
+@@ -243,7 +243,8 @@ _get_os_version (void)
char *ret = bson_malloc (HANDSHAKE_OS_VERSION_MAX);
bool found = false;
@@ -29,7 +93,7 @@ diff --git a/src/mongoc/mongoc-util.c b/src/mongoc/mongoc-util.c
index 6dbb26d..7f33780 100644
--- a/src/mongoc/mongoc-util.c
+++ b/src/mongoc/mongoc-util.c
-@@ -46,7 +46,11 @@ _mongoc_hex_md5 (const char *input)
+@@ -69,7 +69,11 @@ _mongoc_hex_md5 (const char *input)
void
_mongoc_usleep (int64_t usec)
{
diff --git a/ports/mongo-c-driver/portfile.cmake b/ports/mongo-c-driver/portfile.cmake
index 4376f324a..3b3b1f863 100644
--- a/ports/mongo-c-driver/portfile.cmake
+++ b/ports/mongo-c-driver/portfile.cmake
@@ -1,21 +1,24 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mongo-c-driver-1.6.2)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mongo-c-driver-1.9.0)
vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/mongodb/mongo-c-driver/archive/1.6.2.tar.gz"
- FILENAME "mongo-c-driver-1.6.2.tar.gz"
- SHA512 3533fed665c70b71f0e9473156bab1575f60b0b3db412f19c0a625e1e35683a3077f96b8a0ba337fd755675029f47b68dc3a5fc8f39254bb0be589da57cffad3
+ URLS "https://github.com/mongodb/mongo-c-driver/archive/1.9.0.tar.gz"
+ FILENAME "mongo-c-driver-1.9.0.tar.gz"
+ SHA512 e7785f336c38bbf7dd519351bba2facab025b4d2bcd1eef82e98606a21510af7f799edaf4b4f074bd4c5a17ad63176c276f8c57e499b8d9afd098bce274da4ae
)
vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
- PREFER_NINJA
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/bson.patch
- ${CMAKE_CURRENT_LIST_DIR}/fix-uwp.patch
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-uwp.patch
)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ set(ENABLE_STATIC ON)
+else()
+ set(ENABLE_STATIC OFF)
+endif()
+
set(ENABLE_SSL "WINDOWS")
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
set(ENABLE_SSL "OPENSSL")
@@ -23,11 +26,13 @@ endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
-DBSON_ROOT_DIR=${CURRENT_INSTALLED_DIR}
-DENABLE_TESTS=OFF
-DENABLE_EXAMPLES=OFF
-DENABLE_SSL=${ENABLE_SSL}
+ -DENABLE_STATIC=${ENABLE_STATIC}
)
vcpkg_install_cmake()
@@ -43,23 +48,47 @@ file(RENAME ${CURRENT_PACKAGES_DIR}/temp ${CURRENT_PACKAGES_DIR}/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
- file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/mongoc-1.0.lib)
- file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/mongoc-1.0.lib)
-
file(RENAME
${CURRENT_PACKAGES_DIR}/lib/mongoc-static-1.0.lib
${CURRENT_PACKAGES_DIR}/lib/mongoc-1.0.lib)
file(RENAME
${CURRENT_PACKAGES_DIR}/debug/lib/mongoc-static-1.0.lib
${CURRENT_PACKAGES_DIR}/debug/lib/mongoc-1.0.lib)
-else()
- file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/mongoc-static-1.0.lib)
- file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/mongoc-static-1.0.lib)
+
+ # drop the __declspec(dllimport) when building static
+ vcpkg_apply_patches(
+ SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/static.patch
+ )
+
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/bin)
endif()
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver RENAME copyright)
file(COPY ${SOURCE_PATH}/THIRD_PARTY_NOTICES DESTINATION ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver)
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+file(READ ${CURRENT_PACKAGES_DIR}/lib/cmake/libmongoc-static-1.0/libmongoc-static-1.0-config.cmake LIBMONGOC_CONFIG_CMAKE)
+string(REPLACE "/../../../" "/../../" LIBMONGOC_CONFIG_CMAKE "${LIBMONGOC_CONFIG_CMAKE}")
+string(REPLACE "/include/libmongoc-1.0" "/include" LIBMONGOC_CONFIG_CMAKE "${LIBMONGOC_CONFIG_CMAKE}")
+string(REPLACE "mongoc-static-1.0" "mongoc-1.0" LIBMONGOC_CONFIG_CMAKE "${LIBMONGOC_CONFIG_CMAKE}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/mongo-c-driver-config.cmake "${LIBMONGOC_CONFIG_CMAKE}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/libmongoc-static-1.0/libmongoc-static-1.0-config.cmake "${LIBMONGOC_CONFIG_CMAKE}")
+file(COPY ${CURRENT_PACKAGES_DIR}/lib/cmake/libmongoc-static-1.0/libmongoc-static-1.0-config-version.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/libmongoc-static-1.0-config-version.cmake ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/mongo-c-driver-config-version.cmake)
+file(COPY ${CURRENT_PACKAGES_DIR}/lib/cmake/libmongoc-static-1.0/libmongoc-static-1.0-config-version.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libmongoc-static-1.0)
+else()
+file(READ ${CURRENT_PACKAGES_DIR}/lib/cmake/libmongoc-1.0/libmongoc-1.0-config.cmake LIBMONGOC_CONFIG_CMAKE)
+string(REPLACE "/../../../" "/../../" LIBMONGOC_CONFIG_CMAKE "${LIBMONGOC_CONFIG_CMAKE}")
+string(REPLACE "/include/libmongoc-1.0" "/include" LIBMONGOC_CONFIG_CMAKE "${LIBMONGOC_CONFIG_CMAKE}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/mongo-c-driver-config.cmake "${LIBMONGOC_CONFIG_CMAKE}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/libmongoc-1.0/libmongoc-1.0-config.cmake "${LIBMONGOC_CONFIG_CMAKE}")
+file(COPY ${CURRENT_PACKAGES_DIR}/lib/cmake/libmongoc-1.0/libmongoc-1.0-config-version.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/libmongoc-1.0-config-version.cmake ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/mongo-c-driver-config-version.cmake)
+file(COPY ${CURRENT_PACKAGES_DIR}/lib/cmake/libmongoc-1.0/libmongoc-1.0-config-version.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libmongoc-1.0)
+endif()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake ${CURRENT_PACKAGES_DIR}/lib/cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig ${CURRENT_PACKAGES_DIR}/lib/pkgconfig)
+
vcpkg_copy_pdbs()
diff --git a/ports/mongo-c-driver/static.patch b/ports/mongo-c-driver/static.patch
new file mode 100644
index 000000000..7f348ba82
--- /dev/null
+++ b/ports/mongo-c-driver/static.patch
@@ -0,0 +1,13 @@
+diff --git a/mongoc-macros.h b/mongoc-macros.h
+index 909bf6c..0a1f612 100644
+--- a/mongoc-macros.h
++++ b/mongoc-macros.h
+@@ -40,7 +40,7 @@
+ #elif defined(MONGOC_COMPILATION)
+ #define MONGOC_API __declspec(dllexport)
+ #else
+-#define MONGOC_API __declspec(dllimport)
++#define MONGOC_API
+ #endif
+ #define MONGOC_CALL __cdecl
+