Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions ports/soci/0001-Deduce-reference-in-boost-fusion-for_each.patch
Original file line number Diff line number Diff line change
@@ -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

62 changes: 62 additions & 0 deletions ports/soci/0002-Find-PostgreSQL-debug-library.patch
Original file line number Diff line number Diff line change
@@ -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

2 changes: 1 addition & 1 deletion ports/soci/CONTROL
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Source: soci
Version: 3.2.3-3
Version: 3.2.3-4
Description: SOCI database access library

Feature: boost
Expand Down
2 changes: 2 additions & 0 deletions ports/soci/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down