[soci] Upgrade to version 4.0.0 (#9008)

This commit is contained in:
Lily 2019-11-20 02:50:11 +08:00 committed by Robert Schumacher
parent 9463f7d789
commit 6b3d74ebba
4 changed files with 6 additions and 145 deletions

View File

@ -1,75 +0,0 @@
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

View File

@ -1,62 +0,0 @@
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

View File

@ -1,5 +1,5 @@
Source: soci
Version: 3.2.3-4
.Version: 4.0.0
Homepage: https://github.com/SOCI/soci
Description: SOCI database access library

View File

@ -2,11 +2,9 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO SOCI/soci
REF c15b178a44b99ed3ff7fd953837fb97f6314abb7
SHA512 037c44f29e80b5ec57046606b4672088917d469e9d2254e3e15253e170026cf0fe17e4f79a4b01df22fe7032708ca87354b1560d9880d4d165cdef869c3c6081
REF 3742c894ab8ba5fd51b6a156980e8b34db0f3063 #version 4.0.0 commit on 2019.11.10
SHA512 27950230d104bdc0ab8e439a69c59d1b157df373adc863a22c8332b8bb896c2a6e3028f8343bb36b42bf9ab2a2312375e20cbdeca7f497f0bb1424a4733f0c9c
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)
@ -47,11 +45,11 @@ vcpkg_configure_cmake(
)
vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/SOCI)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/cmake ${CURRENT_PACKAGES_DIR}/debug/cmake ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE_1_0.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/soci)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/soci/LICENSE_1_0.txt ${CURRENT_PACKAGES_DIR}/share/soci/copyright)
file(INSTALL ${SOURCE_PATH}/LICENSE_1_0.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
vcpkg_copy_pdbs()