From 895660f35c269028634cfab814d623ea7ef6bf7e Mon Sep 17 00:00:00 2001 From: Leonid Pospelov Date: Sat, 8 Jun 2019 15:08:40 +0300 Subject: [mongo-cxx-driver] Add options for C++17 polyfill selection --- ports/mongo-cxx-driver/CONTROL | 12 ++++++++++++ ports/mongo-cxx-driver/portfile.cmake | 17 +++++++++++++++++ 2 files changed, 29 insertions(+) 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() -- cgit v1.2.3