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
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=4.0.3
|
||||
pkgrel=5
|
||||
pkgver=4.1.2
|
||||
pkgrel=1
|
||||
pkgdesc="SOCI - The C++ Database Access Library (mingw-w64)"
|
||||
arch=('any')
|
||||
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
|
||||
@ -19,35 +19,25 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
|
||||
"${MINGW_PACKAGE_PREFIX}-cmake"
|
||||
"${MINGW_PACKAGE_PREFIX}-ninja"
|
||||
"${MINGW_PACKAGE_PREFIX}-boost"
|
||||
$([[ ${CARCH} == aarch64 ]] || echo "${MINGW_PACKAGE_PREFIX}-firebird")
|
||||
"${MINGW_PACKAGE_PREFIX}-firebird"
|
||||
"${MINGW_PACKAGE_PREFIX}-libmariadbclient"
|
||||
"${MINGW_PACKAGE_PREFIX}-postgresql"
|
||||
"${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}-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"
|
||||
soci-4.0.0.patch
|
||||
soci-cmake-sociconfig.patch
|
||||
soci-tests-catch.patch)
|
||||
sha256sums=('4b1ff9c8545c5d802fbe06ee6cd2886630e5c03bf740e269bb625b45cf934928'
|
||||
'fe7db55531f0d061cced835709065672904bb00d26514e0c323124bab43f2b90'
|
||||
'65f820a25a8c19e1bd608372f7092db88b2428b529cb05622574527a6ca4591c'
|
||||
'2490363693b9350527f6e0115123d99fb375f701f7b241992cccb18c59940cb7')
|
||||
001-fix-undefined-reference.patch)
|
||||
sha256sums=('c0974067e57242f21d9a85677c5f6cc7848fba3cbd5ec58d76c95570a5a7a15b'
|
||||
'93b96f408da20a4775d75483d35ea1f64a7283e7f80fc26881010baebf42c7ad')
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}/${_realname}-${pkgver}"
|
||||
patch -p1 -i "${srcdir}"/soci-4.0.0.patch
|
||||
patch -p1 -i "${srcdir}"/soci-cmake-sociconfig.patch
|
||||
patch -p1 -i "${srcdir}"/soci-tests-catch.patch
|
||||
cd "${_realname}-${pkgver}"
|
||||
patch -p1 -i "${srcdir}"/001-fix-undefined-reference.patch
|
||||
}
|
||||
|
||||
build() {
|
||||
mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}"
|
||||
|
||||
declare -a _extra_config
|
||||
if check_option "debug" "n"; then
|
||||
_extra_config+=("-DCMAKE_BUILD_TYPE=Release")
|
||||
@ -56,20 +46,20 @@ build() {
|
||||
fi
|
||||
|
||||
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
|
||||
${MINGW_PREFIX}/bin/cmake.exe -Wno-dev \
|
||||
cmake -Wno-dev \
|
||||
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
|
||||
"${_extra_config[@]}" \
|
||||
"../${_realname}-${pkgver}"
|
||||
-S ${_realname}-${pkgver} \
|
||||
-B build-${MSYSTEM}
|
||||
|
||||
${MINGW_PREFIX}/bin/cmake --build .
|
||||
cmake --build build-${MSYSTEM}
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MSYSTEM}"
|
||||
DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install .
|
||||
DESTDIR="${pkgdir}" cmake --install build-${MSYSTEM}
|
||||
|
||||
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}
|
||||
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