]>
Commit | Line | Data |
---|---|---|
1e59de90 TL |
1 | # This port needs to be updated at the same time as mongo-c-driver |
2 | vcpkg_from_github( | |
3 | OUT_SOURCE_PATH SOURCE_PATH | |
4 | REPO mongodb/mongo-c-driver | |
5 | REF 99d422877c5b5ea52006c13ee3b48297251b2b2d # debian/1.16.1 | |
6 | SHA512 e2f129439ff3697981774e0de35586a6afe98838acfc52d8a115bcb298350f2779b886dc6b27130e78b3b81f9b0a85b2bc6bcef246f9685c05f6789747c4739d | |
7 | HEAD_REF master | |
8 | PATCHES | |
9 | fix-uwp.patch | |
10 | fix-static-cmake.patch | |
11 | ) | |
12 | ||
13 | if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") | |
14 | set(ENABLE_STATIC ON) | |
15 | else() | |
16 | set(ENABLE_STATIC OFF) | |
17 | endif() | |
18 | ||
19 | file(READ ${CMAKE_CURRENT_LIST_DIR}/CONTROL _contents) | |
20 | string(REGEX MATCH "\nVersion:[ ]*[^ \n]+" _contents "${_contents}") | |
21 | string(REGEX REPLACE ".+Version:[ ]*([\\.0-9]+).*" "\\1" BUILD_VERSION "${_contents}") | |
22 | ||
23 | file(WRITE "${BUILD_VERSION}" ${SOURCE_PATH}/VERSION_CURRENT) | |
24 | ||
25 | vcpkg_configure_cmake( | |
26 | SOURCE_PATH ${SOURCE_PATH} | |
27 | PREFER_NINJA | |
28 | DISABLE_PARALLEL_CONFIGURE | |
29 | OPTIONS | |
30 | -DENABLE_MONGOC=OFF | |
31 | -DENABLE_BSON=ON | |
32 | -DENABLE_TESTS=OFF | |
33 | -DENABLE_EXAMPLES=OFF | |
34 | -DENABLE_STATIC=${ENABLE_STATIC} | |
35 | -DBUILD_VERSION=${BUILD_VERSION} | |
36 | -DCMAKE_DISABLE_FIND_PACKAGE_PythonInterp=ON | |
37 | ) | |
38 | ||
39 | vcpkg_install_cmake() | |
40 | ||
41 | vcpkg_copy_pdbs() | |
42 | ||
43 | set(PORT_POSTFIX "1.0") | |
44 | ||
45 | if (VCPKG_LIBRARY_LINKAGE STREQUAL static) | |
46 | vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/libbson-static-${PORT_POSTFIX} TARGET_PATH share/bson-${PORT_POSTFIX}) | |
47 | else() | |
48 | vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/libbson-${PORT_POSTFIX} TARGET_PATH share/bson-${PORT_POSTFIX}) | |
49 | endif() | |
50 | ||
51 | file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) | |
52 | file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver) | |
53 | ||
54 | # This rename is needed because the official examples expect to use #include <bson.h> | |
55 | # See Microsoft/vcpkg#904 | |
56 | file(RENAME | |
57 | ${CURRENT_PACKAGES_DIR}/include/libbson-${PORT_POSTFIX} | |
58 | ${CURRENT_PACKAGES_DIR}/temp) | |
59 | file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include) | |
60 | file(RENAME ${CURRENT_PACKAGES_DIR}/temp ${CURRENT_PACKAGES_DIR}/include) | |
61 | ||
62 | file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) | |
63 | ||
64 | if (VCPKG_LIBRARY_LINKAGE STREQUAL static) | |
65 | # drop the __declspec(dllimport) when building static | |
66 | vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/bson/bson-macros.h | |
67 | "define BSON_API __declspec(dllimport)" "define BSON_API") | |
68 | ||
69 | file(RENAME ${CURRENT_PACKAGES_DIR}/share/bson-${PORT_POSTFIX}/libbson-static-${PORT_POSTFIX}-config.cmake | |
70 | ${CURRENT_PACKAGES_DIR}/share/bson-${PORT_POSTFIX}/bson-${PORT_POSTFIX}-config.cmake) | |
71 | file(RENAME ${CURRENT_PACKAGES_DIR}/share/bson-${PORT_POSTFIX}/libbson-static-${PORT_POSTFIX}-config-version.cmake | |
72 | ${CURRENT_PACKAGES_DIR}/share/bson-${PORT_POSTFIX}/bson-${PORT_POSTFIX}-config-version.cmake) | |
73 | ||
74 | file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/bin) | |
75 | else() | |
76 | file(RENAME ${CURRENT_PACKAGES_DIR}/share/bson-${PORT_POSTFIX}/libbson-${PORT_POSTFIX}-config.cmake | |
77 | ${CURRENT_PACKAGES_DIR}/share/bson-${PORT_POSTFIX}/bson-${PORT_POSTFIX}-config.cmake) | |
78 | file(RENAME ${CURRENT_PACKAGES_DIR}/share/bson-${PORT_POSTFIX}/libbson-${PORT_POSTFIX}-config-version.cmake | |
79 | ${CURRENT_PACKAGES_DIR}/share/bson-${PORT_POSTFIX}/bson-${PORT_POSTFIX}-config-version.cmake) | |
80 | endif() | |
81 | ||
82 | vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/share/bson-1.0/bson-1.0-config.cmake | |
83 | "include/libbson-1.0" "include/") | |
84 | ||
85 | file(COPY ${SOURCE_PATH}/THIRD_PARTY_NOTICES DESTINATION ${CURRENT_PACKAGES_DIR}/share/libbson) | |
86 | ||
87 | file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) | |
88 | file(INSTALL ${CURRENT_PORT_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) |