Skip to content

Commit d062724

Browse files
authored
[libmariadb] Update, major refresh (#41175)
1 parent 511d74f commit d062724

20 files changed

+316
-295
lines changed

ports/libmariadb/cmake-export.diff

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
diff --git a/libmariadb/CMakeLists.txt b/libmariadb/CMakeLists.txt
2+
index bbad89a..71662d3 100644
3+
--- a/libmariadb/CMakeLists.txt
4+
+++ b/libmariadb/CMakeLists.txt
5+
@@ -547,3 +547,22 @@ IF(0)
6+
CONFIGURATIONS Debug RelWithDebInfo
7+
COMPONENT Development)
8+
ENDIF()
9+
+
10+
+set_target_properties(mariadbclient PROPERTIES EXPORT_NAME libmariadb)
11+
+
12+
+install(EXPORT unofficial-libmariadb-targets
13+
+ NAMESPACE unofficial::
14+
+ DESTINATION share/unofficial-libmariadb
15+
+)
16+
+
17+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-libmariadb-config.cmake.in" [[
18+
+if(NOT "@BUILD_SHARED_LIBS@")
19+
+ include(CMakeFindDependencyMacro)
20+
+ if("@WITH_ZSTD@")
21+
+ find_dependency(zstd CONFIG)
22+
+ endif()
23+
+endif()
24+
+include("${CMAKE_CURRENT_LIST_DIR}/unofficial-libmariadb-targets.cmake")
25+
+]])
26+
+configure_file("${CMAKE_CURRENT_BINARY_DIR}/unofficial-libmariadb-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-libmariadb-config.cmake" @ONLY)
27+
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-libmariadb-config.cmake" DESTINATION share/unofficial-libmariadb)

ports/libmariadb/compiler-flags.diff

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index 8994119..9ccfacb 100644
3+
--- a/CMakeLists.txt
4+
+++ b/CMakeLists.txt
5+
@@ -113,8 +113,6 @@ IF(MSVC)
6+
ENDIF()
7+
ENDIF()
8+
STRING(REPLACE "/Zi" "/Z7" COMPILER_FLAGS ${COMPILER_FLAGS})
9+
- MESSAGE (STATUS "CMAKE_${COMPILER}_FLAGS_${BUILD_TYPE}= ${COMPILER_FLAGS}")
10+
- SET(CMAKE_${COMPILER}_FLAGS_${BUILD_TYPE} ${COMPILER_FLAGS})
11+
ENDIF()
12+
ENDFOREACH()
13+
ENDFOREACH()

ports/libmariadb/dependencies.diff

+110
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index 9ccfacb..4e28b38 100644
3+
--- a/CMakeLists.txt
4+
+++ b/CMakeLists.txt
5+
@@ -219,7 +219,12 @@ INCLUDE(${CC_SOURCE_DIR}/cmake/SearchLibrary.cmake)
6+
7+
# Compression plugins: ZSTD, ZLIB
8+
9+
-INCLUDE(${CC_SOURCE_DIR}/cmake/FindZStd.cmake)
10+
+if(WITH_ZSTD)
11+
+ find_package(ZSTD NAMES zstd REQUIRED)
12+
+ set(ZSTD_LIBRARIES zstd::libzstd)
13+
+else()
14+
+ set(ZSTD_FOUND 0)
15+
+endif()
16+
17+
IF(WITH_EXTERNAL_ZLIB)
18+
IF(NOT ZLIB_FOUND)
19+
@@ -250,7 +255,7 @@ IF(UNIX)
20+
SEARCH_LIBRARY(LIBNSL gethostbyname_r "nsl_r;nsl")
21+
SEARCH_LIBRARY(LIBSOCKET setsockopt socket)
22+
FIND_PACKAGE(Threads)
23+
- SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${LIBNSL} ${LIBBIND} ${LIBICONV} ${ZLIB_LIBRARY}
24+
+ SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${LIBNSL} ${LIBBIND} ${LIBICONV} ${ZLIB_LIBRARIES}
25+
${LIBSOCKET} ${CMAKE_DL_LIBS} ${LIBM} ${LIBPTHREAD})
26+
SET(SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBNSL} ${LIBBIND} ${LIBICONV}
27+
${LIBSOCKET} ${CMAKE_DL_LIBS} ${LIBM} ${LIBPTHREAD})
28+
@@ -307,7 +312,7 @@ IF(NOT WITH_SSL STREQUAL "OFF")
29+
ADD_DEFINITIONS(-DHAVE_OPENSSL -DHAVE_TLS)
30+
SET(SSL_SOURCES "${CC_SOURCE_DIR}/libmariadb/secure/openssl.c"
31+
"${CC_SOURCE_DIR}/libmariadb/secure/openssl_crypt.c")
32+
- SET(SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY})
33+
+ SET(SSL_LIBRARIES ${OPENSSL_LIBRARIES})
34+
IF(WIN32 AND EXISTS ${OPENSSL_INCLUDE_DIR}/openssl/applink.c)
35+
SET(HAVE_OPENSSL_APPLINK_C 1)
36+
ENDIF()
37+
@@ -371,7 +376,12 @@ ENDIF()
38+
39+
IF(WITH_ICONV)
40+
IF(NOT WIN32)
41+
- INCLUDE(${CC_SOURCE_DIR}/cmake/FindIconv.cmake)
42+
+ find_package(Iconv REQUIRED)
43+
+ include_directories(${Iconv_INCLUDE_DIRS})
44+
+ set(ICONV_LIBRARIES "${Iconv_LIBRARIES}")
45+
+ if(NOT Iconv_IS_BUILT_IN)
46+
+ set(ICONV_EXTERNAL 1)
47+
+ endif()
48+
ENDIF()
49+
ENDIF()
50+
51+
@@ -431,7 +441,7 @@ ENDIF()
52+
INCLUDE(${CC_SOURCE_DIR}/plugins/CMakeLists.txt)
53+
ADD_SUBDIRECTORY(include)
54+
ADD_SUBDIRECTORY(libmariadb)
55+
-IF((NOT WIN32) OR CYGWIN)
56+
+IF(1)
57+
ADD_SUBDIRECTORY(mariadb_config)
58+
ENDIF()
59+
60+
diff --git a/libmariadb/CMakeLists.txt b/libmariadb/CMakeLists.txt
61+
index 852be8d..61ad0a6 100644
62+
--- a/libmariadb/CMakeLists.txt
63+
+++ b/libmariadb/CMakeLists.txt
64+
@@ -293,7 +293,7 @@ SET(MARIADB_NONBLOCK_SYMBOLS
65+
66+
# handle static plugins
67+
SET(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES} ${LIBMARIADB_PLUGIN_SOURCES})
68+
-SET(SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBMARIADB_PLUGIN_LIBS} ${ZSTD_LIBRARY} ${ZLIB_LIBRARY})
69+
+SET(SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBMARIADB_PLUGIN_LIBS} ${ZSTD_LIBRARIES} ${ZLIB_LIBRARIES})
70+
MESSAGE(STATUS "SYSTEM_LIBS: ${SYSTEM_LIBS}")
71+
INCLUDE_DIRECTORIES(${LIBMARIADB_PLUGIN_INCLUDES})
72+
ADD_DEFINITIONS(${LIBMARIADB_PLUGIN_DEFS})
73+
diff --git a/mariadb_config/CMakeLists.txt b/mariadb_config/CMakeLists.txt
74+
index 4cb0ba9..c15838a 100644
75+
--- a/mariadb_config/CMakeLists.txt
76+
+++ b/mariadb_config/CMakeLists.txt
77+
@@ -30,6 +30,22 @@ IF(${rllength} GREATER 0)
78+
LIST(REMOVE_DUPLICATES SYSTEM_LIBS)
79+
ENDIF()
80+
81+
+set(REQUIRES_PRIVATE "" CACHE STRING "")
82+
+list(REMOVE_ITEM SYSTEM_LIBS ${ZLIB_LIBRARIES})
83+
+string(APPEND REQUIRES_PRIVATE " zlib")
84+
+if(LIBM)
85+
+ list(REMOVE_ITEM SYSTEM_LIBS ${LIBM})
86+
+ list(APPEND SYSTEM_LIBS "m")
87+
+endif()
88+
+if(WITH_SSL STREQUAL "OPENSSL")
89+
+ list(REMOVE_ITEM SYSTEM_LIBS ${SSL_LIBRARIES})
90+
+ string(APPEND REQUIRES_PRIVATE " openssl")
91+
+endif()
92+
+if(WITH_ZSTD)
93+
+ list(REMOVE_ITEM SYSTEM_LIBS ${ZSTD_LIBRARIES})
94+
+ string(APPEND REQUIRES_PRIVATE " libzstd")
95+
+endif()
96+
+
97+
FOREACH (LIB_NAME ${SYSTEM_LIBS})
98+
GET_LIB_NAME(${LIB_NAME} LIB_OUT)
99+
SET(extra_dynamic_LDFLAGS "${extra_dynamic_LDFLAGS} ${LIB_OUT}")
100+
diff --git a/mariadb_config/libmariadb.pc.in b/mariadb_config/libmariadb.pc.in
101+
index 968181a..3f0410d 100644
102+
--- a/mariadb_config/libmariadb.pc.in
103+
+++ b/mariadb_config/libmariadb.pc.in
104+
@@ -16,5 +16,6 @@ Description: MariaDB Connector/C dynamic library
105+
Cflags: -I${includedir}
106+
Libs: -L${libdir} -lmariadb
107+
Libs.private: @extra_dynamic_LDFLAGS@
108+
+Requires.private: @REQUIRES_PRIVATE@
109+
110+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
diff --git a/mariadb_config/CMakeLists.txt b/mariadb_config/CMakeLists.txt
2+
index 0a32343..4cb0ba9 100644
3+
--- a/mariadb_config/CMakeLists.txt
4+
+++ b/mariadb_config/CMakeLists.txt
5+
@@ -58,9 +58,7 @@ ENDIF()
6+
7+
# Installation
8+
#
9+
-INSTALL(TARGETS mariadb_config
10+
- DESTINATION "${INSTALL_BINDIR}"
11+
- COMPONENT Development)
12+
+set_target_properties(mariadb_config PROPERTIES EXCLUDE_FROM_ALL 1) # not portable
13+
14+
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libmariadb.pc
15+
DESTINATION "${INSTALL_PCDIR}"

ports/libmariadb/disable-test-build.patch

-18
This file was deleted.

ports/libmariadb/fix-CMakeLists.patch

-83
This file was deleted.

ports/libmariadb/fix-iconv.patch

-40
This file was deleted.

ports/libmariadb/fix-openssl.patch

-13
This file was deleted.

ports/libmariadb/library-linkage.diff

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
diff --git a/libmariadb/CMakeLists.txt b/libmariadb/CMakeLists.txt
2+
index 61ad0a6..bbad89a 100644
3+
--- a/libmariadb/CMakeLists.txt
4+
+++ b/libmariadb/CMakeLists.txt
5+
@@ -494,7 +494,9 @@ IF(WITH_MYSQLCOMPAT)
6+
ENDIF()
7+
ENDIF()
8+
9+
+if(NOT BUILD_SHARED_LIBS)
10+
create_symlink(libmariadb${CMAKE_STATIC_LIBRARY_SUFFIX} mariadbclient ${INSTALL_LIBDIR})
11+
+endif()
12+
13+
SET_TARGET_PROPERTIES(libmariadb PROPERTIES VERSION
14+
${CPACK_PACKAGE_VERSION_MAJOR}
15+
@@ -502,27 +504,44 @@ SET_TARGET_PROPERTIES(libmariadb PROPERTIES VERSION
16+
17+
IF(NOT WIN32)
18+
SET_TARGET_PROPERTIES(mariadbclient PROPERTIES OUTPUT_NAME "${LIBMARIADB_STATIC_NAME}")
19+
+elseif(MINGW)
20+
+ set_target_properties(libmariadb PROPERTIES IMPORT_PREFIX "")
21+
ENDIF()
22+
23+
+if(NOT BUILD_SHARED_LIBS)
24+
+set_target_properties(libmariadb PROPERTIES EXCLUDE_FROM_ALL 1)
25+
+target_include_directories(mariadbclient PUBLIC $<INSTALL_INTERFACE:include/mysql>)
26+
INSTALL(TARGETS mariadbclient
27+
+ EXPORT unofficial-libmariadb-targets
28+
COMPONENT Development
29+
+ ARCHIVE
30+
DESTINATION ${INSTALL_LIBDIR})
31+
+else()
32+
+set_target_properties(mariadbclient PROPERTIES EXCLUDE_FROM_ALL 1)
33+
+target_include_directories(libmariadb PUBLIC $<INSTALL_INTERFACE:include/mysql>)
34+
IF(WIN32)
35+
INSTALL(TARGETS libmariadb
36+
+ EXPORT unofficial-libmariadb-targets
37+
COMPONENT SharedLibraries
38+
+ RUNTIME DESTINATION ${INSTALL_BINDIR}
39+
+ LIBRARY DESTINATION ${INSTALL_LIBDIR}
40+
+ ARCHIVE
41+
DESTINATION ${INSTALL_LIBDIR})
42+
ELSE()
43+
# in cmake 3.12+ we can use
44+
#INSTALL(TARGETS libmariadb LIBRARY DESTINATION ${INSTALL_LIBDIR}
45+
# COMPONENT SharedLibraries NAMELINK_COMPONENT Development)
46+
# but as long as we build on CentOS 7 with its cmake 2.8.12.2 we have to use
47+
-INSTALL(TARGETS libmariadb LIBRARY DESTINATION ${INSTALL_LIBDIR}
48+
+INSTALL(TARGETS libmariadb
49+
+ EXPORT unofficial-libmariadb-targets
50+
+ LIBRARY DESTINATION ${INSTALL_LIBDIR}
51+
COMPONENT SharedLibraries NAMELINK_SKIP)
52+
INSTALL(TARGETS libmariadb LIBRARY DESTINATION ${INSTALL_LIBDIR}
53+
COMPONENT Development NAMELINK_ONLY)
54+
ENDIF()
55+
+endif()
56+
57+
-IF(MSVC)
58+
+IF(0)
59+
# On Windows, install PDB
60+
INSTALL(FILES $<TARGET_PDB_FILE:libmariadb> DESTINATION "${INSTALL_LIBDIR}"
61+
CONFIGURATIONS Debug RelWithDebInfo

0 commit comments

Comments
 (0)