Skip to content

Commit

Permalink
[mysql-connector-cpp] upgrade to 8.0.32 (#30869)
Browse files Browse the repository at this point in the history
* [mysql-connector-cpp] update to 8.0.32

* reformat file

* update version

* fix compile on Linux

* update version

* requested changes

* update versions

* fix target not exported

* update version
  • Loading branch information
kotori2 authored Jun 17, 2023
1 parent 287be77 commit 80ecf32
Show file tree
Hide file tree
Showing 7 changed files with 196 additions and 35 deletions.
154 changes: 154 additions & 0 deletions ports/mysql-connector-cpp/dependencies.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
diff --git a/cdk/cmake/DepFindCompression.cmake b/cdk/cmake/DepFindCompression.cmake
index f9fe519f..0f893da8 100644
--- a/cdk/cmake/DepFindCompression.cmake
+++ b/cdk/cmake/DepFindCompression.cmake
@@ -48,7 +48,12 @@ message(STATUS "Setting up compression libraries.")
#######
# ZLIB
#
-add_ext(zlib zlib.h z ext_zlib)
+if (WIN32)
+ set(ZLIB_NAME zlib)
+else()
+ set(ZLIB_NAME z)
+endif()
+add_ext(zlib zlib.h ${ZLIB_NAME} ext_zlib)
if(NOT ZLIB_FOUND)
message(FATAL_ERROR "Can't build without zlib support")
endif()
diff --git a/cdk/cmake/dependency.cmake b/cdk/cmake/dependency.cmake
index e928e711..30d34fef 100644
--- a/cdk/cmake/dependency.cmake
+++ b/cdk/cmake/dependency.cmake
@@ -286,10 +286,18 @@ endif()
function(add_ext_lib EXT target name)
# Search for the library
if(DEFINED ${EXT}_ROOT_DIR)
- set(suffix PATHS ${${EXT}_ROOT_DIR}
- PATH_SUFFIXES lib lib64 dll
- NO_DEFAULT_PATH
- )
+ if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+ set(name "${name}d;${name}")
+ set(suffix PATHS "${${EXT}_ROOT_DIR}/debug"
+ PATH_SUFFIXES lib lib64 dll
+ NO_DEFAULT_PATH
+ )
+ else()
+ set(suffix PATHS ${${EXT}_ROOT_DIR}
+ PATH_SUFFIXES lib lib64 dll
+ NO_DEFAULT_PATH
+ )
+ endif()
elseif(DEFINED ${EXT}_LIB_DIR)
set(suffix
PATHS ${${EXT}_LIB_DIR}
@@ -326,9 +334,10 @@ endfunction(add_ext_lib)
#
function(add_ext_exec EXT target name)
# Search for the library
+ string(TOLOWER ${EXT} EXT_LOWER)
if(DEFINED ${EXT}_ROOT_DIR)
set(suffix PATHS ${${EXT}_ROOT_DIR}
- PATH_SUFFIXES bin
+ PATH_SUFFIXES tools/${EXT_LOWER}
NO_DEFAULT_PATH
)

diff --git a/cdk/protocol/mysqlx/CMakeLists.txt b/cdk/protocol/mysqlx/CMakeLists.txt
index 97a4b005..cfc81daf 100644
--- a/cdk/protocol/mysqlx/CMakeLists.txt
+++ b/cdk/protocol/mysqlx/CMakeLists.txt
@@ -135,8 +135,13 @@ else()
target_link_libraries(cdk_proto_mysqlx PRIVATE ext::protobuf-lite)
endif()

+if (WIN32)
+ set(EXT_ZLIB_NAME ext::zlib)
+else()
+ set(EXT_ZLIB_NAME ext::z)
+endif()
target_link_libraries(cdk_proto_mysqlx
- PRIVATE cdk_foundation ext::z ext::lz4 ext::zstd
+ PRIVATE cdk_foundation ${EXT_ZLIB_NAME} ext::lz4 ext::zstd
)

ADD_COVERAGE(cdk_proto_mysqlx)
diff --git a/jdbc/cmake/DepFindMySQL.cmake b/jdbc/cmake/DepFindMySQL.cmake
index 7977381a..d7f4e58b 100644
--- a/jdbc/cmake/DepFindMySQL.cmake
+++ b/jdbc/cmake/DepFindMySQL.cmake
@@ -167,13 +167,13 @@ function(main)

find_library(MYSQL_LIB
NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX}
- PATHS ${MYSQL_LIB_DIR}
+ PATHS "${MYSQL_LIB_DIR}/lib"
NO_DEFAULT_PATH
)

find_library(MYSQL_LIB_DEBUG
NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX}
- PATHS "${MYSQL_LIB_DIR}/debug"
+ PATHS "${MYSQL_LIB_DIR}/debug/lib"
NO_DEFAULT_PATH
)

@@ -181,39 +181,39 @@ function(main)

find_library(MYSQL_DLL
NAMES ${CMAKE_DYNAMIC_LIBRARY_PREFIX}mysqlclient${CMAKE_DYNAMIC_LIBRARY_SUFFIX}
- PATHS ${MYSQL_LIB_DIR}
+ PATHS "${MYSQL_LIB_DIR}/lib"
NO_DEFAULT_PATH
)

find_library(MYSQL_DLL_DEBUG
NAMES ${CMAKE_DYNAMIC_LIBRARY_PREFIX}mysqlclient${CMAKE_DYNAMIC_LIBRARY_SUFFIX}
- PATHS "${MYSQL_LIB_DIR}/debug"
+ PATHS "${MYSQL_LIB_DIR}/debug/lib"
NO_DEFAULT_PATH
)

else() #WIN32

- find_library(MYSQL_DLL
- NAMES libmysql
- PATHS ${MYSQL_LIB_DIR}
+ find_file(MYSQL_DLL
+ NAMES libmysql.dll
+ PATHS "${MYSQL_LIB_DIR}/bin"
NO_DEFAULT_PATH
)

- find_library(MYSQL_DLL_DEBUG
- NAMES libmysql
- PATHS "${MYSQL_LIB_DIR}/debug"
+ find_file(MYSQL_DLL_DEBUG
+ NAMES libmysql.dll
+ PATHS "${MYSQL_LIB_DIR}/debug/bin"
NO_DEFAULT_PATH
)

find_library(MYSQL_DLL_IMP
NAMES libmysql.lib
- PATHS ${MYSQL_LIB_DIR}
+ PATHS "${MYSQL_LIB_DIR}/lib"
NO_DEFAULT_PATH
)

find_library(MYSQL_DLL_IMP_DEBUG
NAMES libmysql.lib
- PATHS "${MYSQL_LIB_DIR}/debug"
+ PATHS "${MYSQL_LIB_DIR}/debug/lib"
NO_DEFAULT_PATH
)
endif()
@@ -383,6 +383,7 @@ function(main)
# external dependencies.
#

+ find_package(OpenSSL)
target_link_libraries(MySQL::client-static INTERFACE ${MYSQL_EXTERNAL_DEPENDENCIES})

endif()
2 changes: 1 addition & 1 deletion ports/mysql-connector-cpp/export-targets.patch
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ index e734714..6d665dc 100644

merge_libraries(connector xapi devapi)
-target_include_directories(connector PUBLIC "${PROJECT_SOURCE_DIR}/include")
+target_include_directories(connector PRIVATE "${PROJECT_SOURCE_DIR}/include")
+target_include_directories(connector PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>)


#
Expand Down
26 changes: 0 additions & 26 deletions ports/mysql-connector-cpp/fix-static-build8.patch
Original file line number Diff line number Diff line change
Expand Up @@ -34,32 +34,6 @@ index 4c3aab0..a1596af 100644
add_library(lz4 STATIC
lz4.c
lz4frame.c
diff --git a/cdk/extra/protobuf/protobuf-3.19.4/cmake/CMakeLists.txt b/cdk/extra/protobuf/protobuf-3.19.4/cmake/CMakeLists.txt
index efe6b97..377a817 100644
--- a/cdk/extra/protobuf/protobuf-3.19.4/cmake/CMakeLists.txt
+++ b/cdk/extra/protobuf/protobuf-3.19.4/cmake/CMakeLists.txt
@@ -186,9 +186,9 @@ else (protobuf_BUILD_SHARED_LIBS)
# Prior to CMake 3.15, the MSVC runtime library was pushed into the same flags
# making programmatic control difficult. Prefer the functionality in newer
# CMake versions when available.
- if(CMAKE_VERSION VERSION_GREATER 3.15 OR CMAKE_VERSION VERSION_EQUAL 3.15)
- set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded$<$<CONFIG:Debug>:Debug>)
- else()
+ #if(CMAKE_VERSION VERSION_GREATER 3.15 OR CMAKE_VERSION VERSION_EQUAL 3.15)
+ # set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded$<$<CONFIG:Debug>:Debug>)
+ #else()
# In case we are building static libraries, link also the runtime library statically
# so that MSVCR*.DLL is not required at runtime.
# https://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx
@@ -203,7 +203,7 @@ else (protobuf_BUILD_SHARED_LIBS)
endif(${flag_var} MATCHES "/MD")
endforeach(flag_var)
endif (MSVC AND protobuf_MSVC_STATIC_RUNTIME)
- endif()
+ #endif()
endif (protobuf_BUILD_SHARED_LIBS)

if (MSVC)
diff --git a/cdk/extra/zlib/CMakeLists.txt b/cdk/extra/zlib/CMakeLists.txt
index 237c2c3..7746bd0 100644
--- a/cdk/extra/zlib/CMakeLists.txt
Expand Down
22 changes: 19 additions & 3 deletions ports/mysql-connector-cpp/portfile.cmake
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO mysql/mysql-connector-cpp
REF 8.0.30
SHA512 fd6d8a03ba66ca028b3748218c60a721c9e2c79867c6cf2ea95d2649d3a252e9bd307986b149897dcc1d24a11785666c5480225a20c4baba7c87b376b7289a13
REF "${VERSION}"
SHA512 b65c44ef05e3f6ec8613f7d09f6662fc1b4cce5fdf515dec43a20398605acc2555572b788a89b61d6ce835dab3f68183be6610750ae42a6be7d9c24c99ecaacf
HEAD_REF master
PATCHES
fix-static-build8.patch
export-targets.patch
dependencies.patch
)

vcpkg_check_features(
OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
jdbc WITH_JDBC
)

file(COPY "${CMAKE_CURRENT_LIST_DIR}/mysql-connector-cpp-config.cmake.in" DESTINATION "${SOURCE_PATH}")
Expand All @@ -20,10 +27,19 @@ vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
WINDOWS_USE_MSBUILD
OPTIONS
"-DWITH_SSL=${CURRENT_INSTALLED_DIR}"
-DWITH_SSL=${CURRENT_INSTALLED_DIR}
-DWITH_LZ4=${CURRENT_INSTALLED_DIR}
-DWITH_ZLIB=${CURRENT_INSTALLED_DIR}
-DWITH_ZSTD=${CURRENT_INSTALLED_DIR}
-DWITH_PROTOBUF=${CURRENT_INSTALLED_DIR}
-DBUILD_STATIC=${BUILD_STATIC}
-DSTATIC_MSVCRT=${STATIC_MSVCRT}
-DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
-DWITH_JDBC=${WITH_JDBC} # the following variables are only used by jdbc
MAYBE_UNUSED_VARIABLES # and they are windows only
-DMYSQL_INCLUDE_DIR="${CURRENT_INSTALLED_DIR}/include/mysql"
-DMYSQL_LIB_DIR=${CURRENT_INSTALLED_DIR}
-DWITH_BOOST=${CURRENT_INSTALLED_DIR}
)

vcpkg_cmake_install()
Expand Down
18 changes: 15 additions & 3 deletions ports/mysql-connector-cpp/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,32 @@
{
"name": "mysql-connector-cpp",
"version": "8.0.30",
"port-version": 1,
"version": "8.0.32",
"description": "This is a release of MySQL Connector/C++, the C++ interface for communicating with MySQL servers.",
"homepage": "https://github.com/mysql/mysql-connector-cpp",
"license": null,
"supports": "!uwp & !(windows & (arm | arm64))",
"dependencies": [
"lz4",
"openssl",
"protobuf",
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
},
"zlib",
"zstd"
],
"features": {
"jdbc": {
"description": "Legacy JDBC support.",
"supports": "static",
"dependencies": [
"libmysql"
]
}
]
}
}
4 changes: 2 additions & 2 deletions versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -5521,8 +5521,8 @@
"port-version": 5
},
"mysql-connector-cpp": {
"baseline": "8.0.30",
"port-version": 1
"baseline": "8.0.32",
"port-version": 0
},
"nameof": {
"baseline": "0.10.2",
Expand Down
5 changes: 5 additions & 0 deletions versions/m-/mysql-connector-cpp.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "b78f858b560a7a1fb4d13646a7652f86465885fd",
"version": "8.0.32",
"port-version": 0
},
{
"git-tree": "0cb6021de557d4669a9483690da1500b2b83ba26",
"version": "8.0.30",
Expand Down

0 comments on commit 80ecf32

Please sign in to comment.