aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/mongo-cxx-driver/CONTROL12
-rw-r--r--ports/mongo-cxx-driver/portfile.cmake17
2 files changed, 29 insertions, 0 deletions
diff --git a/ports/mongo-cxx-driver/CONTROL b/ports/mongo-cxx-driver/CONTROL
index 4d89b54c0..f143f422f 100644
--- a/ports/mongo-cxx-driver/CONTROL
+++ b/ports/mongo-cxx-driver/CONTROL
@@ -2,3 +2,15 @@ Source: mongo-cxx-driver
Version: 3.2.0-2
Build-Depends: libbson, mongo-c-driver, boost-smart-ptr, boost-optional, boost-utility
Description: MongoDB C++ Driver.
+
+Feature: mnmlstc
+Description: Use MNMLSTC/core C++17 polyfill.
+
+Feature: system-mnmlstc
+Description: Use an available version of MNMLSTC on your system as C++17 polyfill.
+
+Feature: boost
+Description: Use Boost C++17 polyfill. The only option under MSVC.
+
+Feature: std-experimental
+Description: Use optional and string_view from std::experimental.
diff --git a/ports/mongo-cxx-driver/portfile.cmake b/ports/mongo-cxx-driver/portfile.cmake
index 69ac66b04..e94902bcc 100644
--- a/ports/mongo-cxx-driver/portfile.cmake
+++ b/ports/mongo-cxx-driver/portfile.cmake
@@ -17,6 +17,22 @@ vcpkg_from_github(
disable-c2338-mongo-cxx-driver.patch
)
+if ("mnmlstc" IN_LIST FEATURES)
+ set(BSONCXX_POLY MNMLSTC)
+elseif ("system-mnmlstc" IN_LIST FEATURES)
+ set(BSONCXX_POLY SYSTEM_MNMLSTC)
+elseif ("boost" IN_LIST FEATURES)
+ set(BSONCXX_POLY BOOST)
+elseif("std-experimental" IN_LIST FEATURES)
+ set(BSONCXX_POLY STD_EXPERIMENTAL)
+else()
+ if (WIN32)
+ set(BSONCXX_POLY BOOST)
+ else()
+ set(BSONCXX_POLY MNMLSTC)
+ endif()
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
@@ -25,6 +41,7 @@ vcpkg_configure_cmake(
-DLIBMONGOC_DIR=${CURRENT_INSTALLED_DIR}
-DMONGOCXX_HEADER_INSTALL_DIR=include
-DBSONCXX_HEADER_INSTALL_DIR=include
+ -DBSONCXX_POLY_USE_${BSONCXX_POLY}=1
)
vcpkg_install_cmake()