aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Lebedev <lebdron@gmail.com>2019-05-10 01:22:50 +0300
committerPhil Christensen <philc@microsoft.com>2019-05-09 15:22:50 -0700
commit010e88c647f591d8bf0ed38004883291caeab8d4 (patch)
treeb806eab59c7fbdb9be5a421370cfbffeabe0180f
parentf0d575c2f3c69abf161692b04eaf843bd3bf951f (diff)
downloadvcpkg-010e88c647f591d8bf0ed38004883291caeab8d4.tar.gz
vcpkg-010e88c647f591d8bf0ed38004883291caeab8d4.zip
[soci] Add patches for boost and postgresql (#6328)
Signed-off-by: Andrei Lebedev <lebdron@gmail.com>
-rw-r--r--ports/soci/0001-Deduce-reference-in-boost-fusion-for_each.patch75
-rw-r--r--ports/soci/0002-Find-PostgreSQL-debug-library.patch62
-rw-r--r--ports/soci/CONTROL2
-rw-r--r--ports/soci/portfile.cmake2
4 files changed, 140 insertions, 1 deletions
diff --git a/ports/soci/0001-Deduce-reference-in-boost-fusion-for_each.patch b/ports/soci/0001-Deduce-reference-in-boost-fusion-for_each.patch
new file mode 100644
index 000000000..cab358512
--- /dev/null
+++ b/ports/soci/0001-Deduce-reference-in-boost-fusion-for_each.patch
@@ -0,0 +1,75 @@
+From 5c3b1e0a61d83d7a3c70fb882c7e0918777f0e00 Mon Sep 17 00:00:00 2001
+From: Andrei Lebedev <lebdron@gmail.com>
+Date: Sun, 5 May 2019 19:52:01 +0300
+Subject: [PATCH] Deduce reference in boost::fusion::for_each
+
+Signed-off-by: Andrei Lebedev <lebdron@gmail.com>
+---
+ include/soci/bind-values.h | 27 +++++++++++++++++++++++----
+ 1 file changed, 23 insertions(+), 4 deletions(-)
+
+diff --git a/include/soci/bind-values.h b/include/soci/bind-values.h
+index eee416e..e84fb0e 100644
+--- a/include/soci/bind-values.h
++++ b/include/soci/bind-values.h
+@@ -13,6 +13,13 @@
+ #ifdef SOCI_HAVE_BOOST
+ # include <boost/fusion/algorithm/iteration/for_each.hpp>
+ # include <boost/mpl/bool.hpp>
++# include <boost/version.hpp>
++
++# if BOOST_VERSION >= 106800
++# define SOCI_BOOST_FUSION_FOREACH_REFERENCE &
++# else
++# define SOCI_BOOST_FUSION_FOREACH_REFERENCE
++# endif
+ #endif // SOCI_HAVE_BOOST
+ #include <vector>
+
+@@ -83,13 +90,19 @@ private:
+ template <typename T, typename Indicator>
+ void exchange_(use_container<T, Indicator> const &uc, boost::mpl::true_ * /* fusion sequence */)
+ {
+- boost::fusion::for_each(uc.t, use_sequence<T, Indicator>(*this, uc.ind));
++ use_sequence<T, Indicator> f(*this, uc.ind);
++ boost::fusion::for_each<T,
++ use_sequence<T, Indicator>
++ SOCI_BOOST_FUSION_FOREACH_REFERENCE>(uc.t, f);
+ }
+
+ template <typename T>
+ void exchange_(use_container<T, details::no_indicator> const &uc, boost::mpl::true_ * /* fusion sequence */)
+ {
+- boost::fusion::for_each(uc.t, use_sequence<T, details::no_indicator>(*this));
++ use_sequence<T, details::no_indicator> f(*this);
++ boost::fusion::for_each<T,
++ use_sequence<T, details::no_indicator>
++ SOCI_BOOST_FUSION_FOREACH_REFERENCE>(uc.t, f);
+ }
+
+ #endif // SOCI_HAVE_BOOST
+@@ -173,13 +186,19 @@ private:
+ template <typename T, typename Indicator>
+ void exchange_(into_container<T, Indicator> const &ic, boost::mpl::true_ * /* fusion sequence */)
+ {
+- boost::fusion::for_each(ic.t, into_sequence<T, Indicator>(*this, ic.ind));
++ into_sequence<T, Indicator> f(*this, ic.ind);
++ boost::fusion::for_each<T,
++ into_sequence<T, Indicator>
++ SOCI_BOOST_FUSION_FOREACH_REFERENCE>(ic.t, f);
+ }
+
+ template <typename T>
+ void exchange_(into_container<T, details::no_indicator> const &ic, boost::mpl::true_ * /* fusion sequence */)
+ {
+- boost::fusion::for_each(ic.t, into_sequence<T, details::no_indicator>(*this));
++ into_sequence<T, details::no_indicator> f(*this);
++ boost::fusion::for_each<T,
++ into_sequence<T, details::no_indicator>
++ SOCI_BOOST_FUSION_FOREACH_REFERENCE>(ic.t, f);
+ }
+ #endif // SOCI_HAVE_BOOST
+
+--
+2.20.1.windows.1
+
diff --git a/ports/soci/0002-Find-PostgreSQL-debug-library.patch b/ports/soci/0002-Find-PostgreSQL-debug-library.patch
new file mode 100644
index 000000000..fef23b751
--- /dev/null
+++ b/ports/soci/0002-Find-PostgreSQL-debug-library.patch
@@ -0,0 +1,62 @@
+From f1fa9cc84e67c9f28f651b926f55f93d60bbb963 Mon Sep 17 00:00:00 2001
+From: Andrei Lebedev <lebdron@gmail.com>
+Date: Sun, 5 May 2019 21:22:49 +0300
+Subject: [PATCH] Find PostgreSQL debug library
+
+Signed-off-by: Andrei Lebedev <lebdron@gmail.com>
+---
+ cmake/modules/FindPostgreSQL.cmake | 31 +++++++++++++++++++-----------
+ 1 file changed, 20 insertions(+), 11 deletions(-)
+
+diff --git a/cmake/modules/FindPostgreSQL.cmake b/cmake/modules/FindPostgreSQL.cmake
+index 48937e2..e2e557b 100644
+--- a/cmake/modules/FindPostgreSQL.cmake
++++ b/cmake/modules/FindPostgreSQL.cmake
+@@ -124,16 +124,21 @@ if ( WIN32 )
+ set (POSTGRESQL_LIBRARY_TO_FIND ${POSTGRESQL_LIB_PREFIX}${POSTGRESQL_LIBRARY_TO_FIND})
+ endif()
+
+-find_library(POSTGRESQL_LIBRARY
+- NAMES ${POSTGRESQL_LIBRARY_TO_FIND}
+- PATHS
+- ${POSTGRESQL_ROOT_DIRECTORIES}
+- PATH_SUFFIXES
+- lib
+- ${POSTGRESQL_LIBRARY_ADDITIONAL_SEARCH_SUFFIXES}
+- # Help the user find it if we cannot.
+- DOC "The ${POSTGRESQL_LIBRARY_DIR_MESSAGE}"
+-)
++function(__postgresql_find_library _name)
++ find_library(${_name}
++ NAMES ${ARGN}
++ PATHS
++ ${POSTGRESQL_ROOT_DIRECTORIES}
++ PATH_SUFFIXES
++ lib
++ ${POSTGRESQL_LIBRARY_ADDITIONAL_SEARCH_SUFFIXES}
++ # Help the user find it if we cannot.
++ DOC "The ${POSTGRESQL_LIBRARY_DIR_MESSAGE}"
++ )
++endfunction()
++
++__postgresql_find_library(POSTGRESQL_LIBRARY ${POSTGRESQL_LIBRARY_TO_FIND})
++__postgresql_find_library(POSTGRESQL_LIBRARY_DEBUG ${POSTGRESQL_LIBRARY_TO_FIND}d)
+ get_filename_component(POSTGRESQL_LIBRARY_DIR ${POSTGRESQL_LIBRARY} PATH)
+
+ if (POSTGRESQL_INCLUDE_DIR)
+@@ -169,7 +174,11 @@ set(POSTGRESQL_FOUND ${POSTGRESQL_FOUND})
+ if(POSTGRESQL_FOUND)
+ set(POSTGRESQL_INCLUDE_DIRS ${POSTGRESQL_INCLUDE_DIR})
+ set(POSTGRESQL_LIBRARY_DIRS ${POSTGRESQL_LIBRARY_DIR})
+- set(POSTGRESQL_LIBRARIES ${POSTGRESQL_LIBRARY})
++ if(POSTGRESQL_LIBRARY AND POSTGRESQL_LIBRARY_DEBUG)
++ set(POSTGRESQL_LIBRARIES optimized ${POSTGRESQL_LIBRARY} debug ${POSTGRESQL_LIBRARY_DEBUG})
++ else()
++ set(POSTGRESQL_LIBRARIES ${POSTGRESQL_LIBRARY})
++ endif()
+ set(POSTGRESQL_VERSION ${POSTGRESQL_VERSION_STRING})
+ endif()
+
+--
+2.20.1.windows.1
+
diff --git a/ports/soci/CONTROL b/ports/soci/CONTROL
index aaab2490e..33de13eb7 100644
--- a/ports/soci/CONTROL
+++ b/ports/soci/CONTROL
@@ -1,5 +1,5 @@
Source: soci
-Version: 3.2.3-3
+Version: 3.2.3-4
Description: SOCI database access library
Feature: boost
diff --git a/ports/soci/portfile.cmake b/ports/soci/portfile.cmake
index 1ba4115ae..b70e43d3c 100644
--- a/ports/soci/portfile.cmake
+++ b/ports/soci/portfile.cmake
@@ -5,6 +5,8 @@ vcpkg_from_github(
REF c15b178a44b99ed3ff7fd953837fb97f6314abb7
SHA512 037c44f29e80b5ec57046606b4672088917d469e9d2254e3e15253e170026cf0fe17e4f79a4b01df22fe7032708ca87354b1560d9880d4d165cdef869c3c6081
HEAD_REF master
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-Deduce-reference-in-boost-fusion-for_each.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/0002-Find-PostgreSQL-debug-library.patch"
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SOCI_DYNAMIC)