soci: update to 4.1.2 (#24538)
This commit is contained in:
parent
8a49c3a8dc
commit
f8756b662f
13
mingw-w64-soci/001-fix-undefined-reference.patch
Normal file
13
mingw-w64-soci/001-fix-undefined-reference.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/src/core/backend-loader.cpp b/src/core/backend-loader.cpp
|
||||||
|
index 7620c87..0efa041 100644
|
||||||
|
--- a/src/core/backend-loader.cpp
|
||||||
|
+++ b/src/core/backend-loader.cpp
|
||||||
|
@@ -46,7 +46,7 @@ private:
|
||||||
|
|
||||||
|
typedef HMODULE soci_dynlib_handle_t;
|
||||||
|
|
||||||
|
-extern "C" IMAGE_DOS_HEADER __ImageBase;
|
||||||
|
+extern "C" { IMAGE_DOS_HEADER __ImageBase; }
|
||||||
|
|
||||||
|
std::string get_this_dynlib_path()
|
||||||
|
{
|
||||||
@ -3,8 +3,8 @@
|
|||||||
_realname=soci
|
_realname=soci
|
||||||
pkgbase=mingw-w64-${_realname}
|
pkgbase=mingw-w64-${_realname}
|
||||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||||
pkgver=4.0.3
|
pkgver=4.1.2
|
||||||
pkgrel=5
|
pkgrel=1
|
||||||
pkgdesc="SOCI - The C++ Database Access Library (mingw-w64)"
|
pkgdesc="SOCI - The C++ Database Access Library (mingw-w64)"
|
||||||
arch=('any')
|
arch=('any')
|
||||||
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
|
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
|
||||||
@ -19,35 +19,25 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
|
|||||||
"${MINGW_PACKAGE_PREFIX}-cmake"
|
"${MINGW_PACKAGE_PREFIX}-cmake"
|
||||||
"${MINGW_PACKAGE_PREFIX}-ninja"
|
"${MINGW_PACKAGE_PREFIX}-ninja"
|
||||||
"${MINGW_PACKAGE_PREFIX}-boost"
|
"${MINGW_PACKAGE_PREFIX}-boost"
|
||||||
$([[ ${CARCH} == aarch64 ]] || echo "${MINGW_PACKAGE_PREFIX}-firebird")
|
"${MINGW_PACKAGE_PREFIX}-firebird"
|
||||||
"${MINGW_PACKAGE_PREFIX}-libmariadbclient"
|
"${MINGW_PACKAGE_PREFIX}-libmariadbclient"
|
||||||
"${MINGW_PACKAGE_PREFIX}-postgresql"
|
"${MINGW_PACKAGE_PREFIX}-postgresql"
|
||||||
"${MINGW_PACKAGE_PREFIX}-sqlite3")
|
"${MINGW_PACKAGE_PREFIX}-sqlite3")
|
||||||
optdepends=("${MINGW_PACKAGE_PREFIX}-libmariadbclient: support for MySQL databases"
|
optdepends=("${MINGW_PACKAGE_PREFIX}-firebird: support for Firebird databases"
|
||||||
|
"${MINGW_PACKAGE_PREFIX}-libmariadbclient: support for MySQL databases"
|
||||||
"${MINGW_PACKAGE_PREFIX}-postgresql: support for PostGreSQL databases"
|
"${MINGW_PACKAGE_PREFIX}-postgresql: support for PostGreSQL databases"
|
||||||
"${MINGW_PACKAGE_PREFIX}-sqlite3: support for SQLite databases")
|
"${MINGW_PACKAGE_PREFIX}-sqlite3: support for SQLite databases")
|
||||||
if [[ ${CARCH} != aarch64 ]]; then
|
|
||||||
optdepends+=("${MINGW_PACKAGE_PREFIX}-firebird: support for Firebird databases")
|
|
||||||
fi
|
|
||||||
source=("https://github.com/SOCI/soci/archive/v${pkgver}/${_realname}-${pkgver}.tar.gz"
|
source=("https://github.com/SOCI/soci/archive/v${pkgver}/${_realname}-${pkgver}.tar.gz"
|
||||||
soci-4.0.0.patch
|
001-fix-undefined-reference.patch)
|
||||||
soci-cmake-sociconfig.patch
|
sha256sums=('c0974067e57242f21d9a85677c5f6cc7848fba3cbd5ec58d76c95570a5a7a15b'
|
||||||
soci-tests-catch.patch)
|
'93b96f408da20a4775d75483d35ea1f64a7283e7f80fc26881010baebf42c7ad')
|
||||||
sha256sums=('4b1ff9c8545c5d802fbe06ee6cd2886630e5c03bf740e269bb625b45cf934928'
|
|
||||||
'fe7db55531f0d061cced835709065672904bb00d26514e0c323124bab43f2b90'
|
|
||||||
'65f820a25a8c19e1bd608372f7092db88b2428b529cb05622574527a6ca4591c'
|
|
||||||
'2490363693b9350527f6e0115123d99fb375f701f7b241992cccb18c59940cb7')
|
|
||||||
|
|
||||||
prepare() {
|
prepare() {
|
||||||
cd "${srcdir}/${_realname}-${pkgver}"
|
cd "${_realname}-${pkgver}"
|
||||||
patch -p1 -i "${srcdir}"/soci-4.0.0.patch
|
patch -p1 -i "${srcdir}"/001-fix-undefined-reference.patch
|
||||||
patch -p1 -i "${srcdir}"/soci-cmake-sociconfig.patch
|
|
||||||
patch -p1 -i "${srcdir}"/soci-tests-catch.patch
|
|
||||||
}
|
}
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}"
|
|
||||||
|
|
||||||
declare -a _extra_config
|
declare -a _extra_config
|
||||||
if check_option "debug" "n"; then
|
if check_option "debug" "n"; then
|
||||||
_extra_config+=("-DCMAKE_BUILD_TYPE=Release")
|
_extra_config+=("-DCMAKE_BUILD_TYPE=Release")
|
||||||
@ -56,20 +46,20 @@ build() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
|
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
|
||||||
${MINGW_PREFIX}/bin/cmake.exe -Wno-dev \
|
cmake -Wno-dev \
|
||||||
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
|
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
|
||||||
"${_extra_config[@]}" \
|
"${_extra_config[@]}" \
|
||||||
"../${_realname}-${pkgver}"
|
-S ${_realname}-${pkgver} \
|
||||||
|
-B build-${MSYSTEM}
|
||||||
|
|
||||||
${MINGW_PREFIX}/bin/cmake --build .
|
cmake --build build-${MSYSTEM}
|
||||||
}
|
}
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
cd "${srcdir}/build-${MSYSTEM}"
|
DESTDIR="${pkgdir}" cmake --install build-${MSYSTEM}
|
||||||
DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install .
|
|
||||||
|
|
||||||
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
|
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
|
||||||
for _f in "${pkgdir}${MINGW_PREFIX}"/lib/cmake/SOCI/*.cmake; do
|
for _f in "${pkgdir}${MINGW_PREFIX}"/lib/cmake/soci*/*.cmake; do
|
||||||
sed -e "s|${PREFIX_WIN}|\$\{_IMPORT_PREFIX\}|g" -i ${_f}
|
sed -e "s|${PREFIX_WIN}|\$\{_IMPORT_PREFIX\}|g" -i ${_f}
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
@ -1,63 +0,0 @@
|
|||||||
--- a/cmake/modules/FindMySQL.cmake
|
|
||||||
+++ b/cmake/modules/FindMySQL.cmake
|
|
||||||
@@ -21,9 +21,14 @@
|
|
||||||
PATHS
|
|
||||||
$ENV{MYSQL_INCLUDE_DIR}
|
|
||||||
$ENV{MYSQL_DIR}/include
|
|
||||||
+ if(MSVC)
|
|
||||||
$ENV{ProgramFiles}/MySQL/*/include
|
|
||||||
$ENV{SystemDrive}/MySQL/*/include
|
|
||||||
$ENV{ProgramW6432}/MySQL/*/include
|
|
||||||
+ else()
|
|
||||||
+ PATH_SUFFIXES
|
|
||||||
+ mysql
|
|
||||||
+ endif()
|
|
||||||
)
|
|
||||||
else(WIN32)
|
|
||||||
find_path(MYSQL_INCLUDE_DIR mysql.h
|
|
||||||
@@ -55,6 +60,7 @@
|
|
||||||
endif(CMAKE_BUILD_TYPE_TOLOWER MATCHES "debug")
|
|
||||||
|
|
||||||
# find_library(MYSQL_LIBRARIES NAMES mysqlclient
|
|
||||||
+ if(MSVC)
|
|
||||||
set(MYSQL_LIB_PATHS
|
|
||||||
$ENV{MYSQL_DIR}/lib/${binary_dist}
|
|
||||||
$ENV{MYSQL_DIR}/libmysql/${build_dist}
|
|
||||||
@@ -71,6 +77,15 @@
|
|
||||||
PATHS
|
|
||||||
${MYSQL_LIB_PATHS}
|
|
||||||
)
|
|
||||||
+ else()
|
|
||||||
+ set(MYSQL_LIB_PATHS
|
|
||||||
+ $ENV{MYSQL_DIR}/lib
|
|
||||||
+ )
|
|
||||||
+ find_library(MYSQL_LIBRARIES NAMES mysqlclient
|
|
||||||
+ PATHS
|
|
||||||
+ ${MYSQL_LIB_PATHS}
|
|
||||||
+ )
|
|
||||||
+ endif()
|
|
||||||
else(WIN32)
|
|
||||||
# find_library(MYSQL_LIBRARIES NAMES mysqlclient
|
|
||||||
set(MYSQL_LIB_PATHS
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
@@ -137,7 +137,7 @@
|
|
||||||
message(FATAL_ERROR "No thread library found")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
-if(NOT MSVC)
|
|
||||||
+if(NOT WIN32)
|
|
||||||
set(DL_FIND_QUIETLY TRUE)
|
|
||||||
find_package(DL)
|
|
||||||
if(DL_FOUND)
|
|
||||||
--- a/tests/odbc/CMakeLists.txt
|
|
||||||
+++ b/tests/odbc/CMakeLists.txt
|
|
||||||
@@ -35,7 +35,7 @@
|
|
||||||
SOURCE test-odbc-mysql.cpp ${SOCI_TESTS_COMMON}
|
|
||||||
CONNSTR "test-mysql.dsn")
|
|
||||||
|
|
||||||
-if(WIN32)
|
|
||||||
+if(SOCI_TARGET_ARCH_X64)
|
|
||||||
set(TEST_PGSQL_DSN "test-postgresql-win64.dsn")
|
|
||||||
else()
|
|
||||||
set(TEST_PGSQL_DSN "test-postgresql.dsn")
|
|
||||||
@ -1,57 +0,0 @@
|
|||||||
--- a/cmake/SociConfig.cmake
|
|
||||||
+++ b/cmake/SociConfig.cmake
|
|
||||||
@@ -10,20 +10,20 @@
|
|
||||||
|
|
||||||
include(CheckCXXSymbolExists)
|
|
||||||
|
|
||||||
-if(WIN32)
|
|
||||||
+if(MSVC)
|
|
||||||
check_cxx_symbol_exists("_M_AMD64" "" SOCI_TARGET_ARCH_X64)
|
|
||||||
if(NOT RTC_ARCH_X64)
|
|
||||||
check_cxx_symbol_exists("_M_IX86" "" SOCI_TARGET_ARCH_X86)
|
|
||||||
endif(NOT RTC_ARCH_X64)
|
|
||||||
# add check for arm here
|
|
||||||
# see http://msdn.microsoft.com/en-us/library/b0084kay.aspx
|
|
||||||
-else(WIN32)
|
|
||||||
+else()
|
|
||||||
check_cxx_symbol_exists("__i386__" "" SOCI_TARGET_ARCH_X86)
|
|
||||||
check_cxx_symbol_exists("__x86_64__" "" SOCI_TARGET_ARCH_X64)
|
|
||||||
check_cxx_symbol_exists("__arm__" "" SOCI_TARGET_ARCH_ARM)
|
|
||||||
-endif(WIN32)
|
|
||||||
+endif()
|
|
||||||
|
|
||||||
-if(NOT DEFINED LIB_SUFFIX)
|
|
||||||
+if(NOT DEFINED LIB_SUFFIX AND NOT MINGW)
|
|
||||||
if(SOCI_TARGET_ARCH_X64)
|
|
||||||
set(_lib_suffix "64")
|
|
||||||
else()
|
|
||||||
@@ -77,6 +77,21 @@
|
|
||||||
set(SOCI_GCC_CLANG_COMMON_FLAGS
|
|
||||||
"-pedantic -Wno-error=parentheses -Wall -Wextra -Wpointer-arith -Wcast-align -Wcast-qual -Wfloat-equal -Woverloaded-virtual -Wredundant-decls -Wno-long-long")
|
|
||||||
|
|
||||||
+ if (MINGW)
|
|
||||||
+ add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
|
|
||||||
+ add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
|
||||||
+ add_definitions(-D_CRT_NONSTDC_NO_WARNING)
|
|
||||||
+ add_definitions(-D_SCL_SECURE_NO_WARNINGS)
|
|
||||||
+
|
|
||||||
+ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
|
||||||
+ add_definitions(-DCATCH_CONFIG_CPP11_NO_IS_ENUM)
|
|
||||||
+ endif()
|
|
||||||
+
|
|
||||||
+ set(SOCI_CXX11 ON)
|
|
||||||
+ set(SOCI_CXX_VERSION_FLAGS "-std=c++14")
|
|
||||||
+ set(SOCI_GCC_CLANG_COMMON_FLAGS "${SOCI_GCC_CLANG_COMMON_FLAGS} -Wno-deprecated-copy")
|
|
||||||
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SOCI_GCC_CLANG_COMMON_FLAGS} ${SOCI_CXX_VERSION_FLAGS}")
|
|
||||||
+ else()
|
|
||||||
|
|
||||||
if (SOCI_CXX11)
|
|
||||||
set(SOCI_CXX_VERSION_FLAGS "-std=c++11")
|
|
||||||
@@ -115,6 +130,7 @@
|
|
||||||
else()
|
|
||||||
message(WARNING "Unknown toolset - using default flags to build SOCI")
|
|
||||||
endif()
|
|
||||||
+ endif()
|
|
||||||
|
|
||||||
endif()
|
|
||||||
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
--- a/tests/catch.hpp
|
|
||||||
+++ b/tests/catch.hpp
|
|
||||||
@@ -7170,7 +7170,7 @@
|
|
||||||
namespace Catch {
|
|
||||||
|
|
||||||
struct RandomNumberGenerator {
|
|
||||||
- typedef std::ptrdiff_t result_type;
|
|
||||||
+ typedef std::size_t result_type;
|
|
||||||
|
|
||||||
result_type operator()( result_type n ) const { return std::rand() % n; }
|
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user