aboutsummaryrefslogtreecommitdiff
path: root/ports/libmysql/system-libs.patch
blob: 547573fc58e7ad978c504185a80fdb4105dee48a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
diff --git a/cmake/icu.cmake b/cmake/icu.cmake
index fde3a75..9f694b9 100644
--- a/cmake/icu.cmake
+++ b/cmake/icu.cmake
@@ -38,49 +38,11 @@
 # install_root is either 'system' or is assumed to be a path.
 #
 MACRO (FIND_ICU install_root)
-  IF("${install_root}" STREQUAL "system")
-    SET(EXTRA_FIND_LIB_ARGS)
-    SET(EXTRA_FIND_INC_ARGS)
-  ELSE()
-    SET(EXTRA_FIND_LIB_ARGS HINTS "${install_root}"
-      PATH_SUFFIXES "lib" "lib64" NO_DEFAULT_PATH)
-    SET(EXTRA_FIND_INC_ARGS HINTS "${install_root}"
-      PATH_SUFFIXES "include"     NO_DEFAULT_PATH)
-  ENDIF()
-
-  FIND_PATH(ICU_INCLUDE_DIR NAMES unicode/regex.h ${EXTRA_FIND_INC_ARGS})
-  IF (NOT ICU_INCLUDE_DIR)
-    MESSAGE(FATAL_ERROR "Cannot find ICU regular expression headers")
-  ENDIF()
-
-  IF(WIN32)
-    SET(ICU_LIBS icuuc icuio icudt icuin)
-  ELSE()
-    SET(ICU_LIBS icuuc icuio icudata icui18n)
-  ENDIF()
-
-  SET(ICU_SYSTEM_LIBRARIES)
-  FOREACH(ICU_LIB ${ICU_LIBS})
-    UNSET(ICU_LIB_PATH CACHE)
-    FIND_LIBRARY(ICU_LIB_PATH NAMES ${ICU_LIB} ${EXTRA_FIND_LIB_ARGS})
-    IF(NOT ICU_LIB_PATH)
-      MESSAGE(FATAL_ERROR "Cannot find the ICU library ${ICU_LIB}")
-    ENDIF()
-    LIST(APPEND ICU_SYSTEM_LIBRARIES ${ICU_LIB_PATH})
-  ENDFOREACH()
-
-  # To do: If we include the path in ICU_INCLUDE_DIR, it leads to GUnit
-  # picking up the wrong regex.h header. And it looks like we don't need it;
-  # at least on Linux, the header gets installed in an OS path anyway.
-  IF(NOT "${install_root}" STREQUAL "system")
-    SET(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIR})
-  ENDIF()
-
-  SET(ICU_LIBRARIES ${ICU_SYSTEM_LIBRARIES})
-
-  # Needed for version information.
-  SET(ICU_COMMON_DIR ${ICU_INCLUDE_DIR})
 
+ find_package(ICU REQUIRED COMPONENTS uc io dt in)
+ set(ICU_SYSTEM_LIBRARIES ICU::uc ICU::io ICU::dt ICU::in)
+ set(ICU_COMMON_DIR ${ICU_INCLUDE_DIR})
+ SET(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIR})
 ENDMACRO()
 
 MACRO (MYSQL_USE_BUNDLED_ICU)
diff --git a/cmake/libutils.cmake b/cmake/libutils.cmake
index 3fa58da..88b53e7 100644
--- a/cmake/libutils.cmake
+++ b/cmake/libutils.cmake
@@ -350,12 +350,7 @@ MACRO(MERGE_CONVENIENCE_LIBRARIES)
   # On Windows, ssleay32.lib/libeay32.lib or libssl.lib/libcrypto.lib
   # must be merged into mysqlclient.lib
   IF(WIN32 AND ${TARGET} STREQUAL "mysqlclient")
-    SET(LINKER_EXTRA_FLAGS "")
-    FOREACH(LIB ${SSL_LIBRARIES})
-      STRING_APPEND(LINKER_EXTRA_FLAGS " ${LIB}")
-    ENDFOREACH()
-    SET_TARGET_PROPERTIES(${TARGET}
-      PROPERTIES STATIC_LIBRARY_FLAGS "${LINKER_EXTRA_FLAGS}")
+    TARGET_LINK_LIBRARIES(${TARGET} PRIVATE ${SSL_LIBRARIES})
   ENDIF()
 
   IF(OSLIBS)
diff --git a/cmake/lz4.cmake b/cmake/lz4.cmake
index 9aad130..68cbaba 100644
--- a/cmake/lz4.cmake
+++ b/cmake/lz4.cmake
@@ -25,7 +25,7 @@
 
 MACRO (FIND_SYSTEM_LZ4)
   FIND_PATH(PATH_TO_LZ4 NAMES lz4frame.h)
-  FIND_LIBRARY(LZ4_SYSTEM_LIBRARY NAMES lz4)
+  FIND_LIBRARY(LZ4_SYSTEM_LIBRARY NAMES lz4d lz4)
   IF (PATH_TO_LZ4 AND LZ4_SYSTEM_LIBRARY)
     SET(SYSTEM_LZ4_FOUND 1)
     INCLUDE_DIRECTORIES(SYSTEM ${PATH_TO_LZ4})
diff --git a/cmake/ssl.cmake b/cmake/ssl.cmake
index 52feade..1e71bd7 100644
--- a/cmake/ssl.cmake
+++ b/cmake/ssl.cmake
@@ -93,7 +93,20 @@ ENDMACRO()
 # Provides the following configure options:
 # WITH_SSL=[yes|system|<path/to/custom/installation>]
 MACRO (MYSQL_CHECK_SSL)
+  find_package(OpenSSL REQUIRED)
+  set(OPENSSL_LIBRARY OpenSSL::SSL CACHE STRING "")
+  set(CRYPTO_LIBRARY OpenSSL::Crypto CACHE STRING "")
+  FIND_PROGRAM(OPENSSL_EXECUTABLE openssl
+        DOC "path to the openssl executable")
+  SET(SSL_DEFINES "-DHAVE_OPENSSL")
+  set(SSL_LIBRARIES OpenSSL::SSL OpenSSL::Crypto)
+  if(NOT WIN32)
+    find_package(Threads REQUIRED)
+    list(APPEND SSL_LIBRARIES Threads::Threads)
+  endif()
+ENDMACRO()
 
+MACRO (MYSQL_CHECK_SSL_OLD)
   IF(NOT WITH_SSL)
     SET(WITH_SSL "system" CACHE STRING ${WITH_SSL_DOC_STRING} FORCE)
   ENDIF()
diff --git a/cmake/zlib.cmake b/cmake/zlib.cmake
index 26c56fe..65bebb4 100644
--- a/cmake/zlib.cmake
+++ b/cmake/zlib.cmake
@@ -51,28 +51,7 @@ MACRO (MYSQL_CHECK_ZLIB_WITH_COMPRESS)
   IF(WITH_ZLIB STREQUAL "bundled")
     MYSQL_USE_BUNDLED_ZLIB()
   ELSE()
-    SET(ZLIB_FIND_QUIETLY TRUE)
-    INCLUDE(FindZLIB)
-    IF(ZLIB_FOUND)
-      INCLUDE(CheckFunctionExists)
-      SET(SAVE_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
-      SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} z)
-      CHECK_FUNCTION_EXISTS(crc32 HAVE_CRC32)
-      CHECK_FUNCTION_EXISTS(compressBound HAVE_COMPRESSBOUND)
-      CHECK_FUNCTION_EXISTS(deflateBound HAVE_DEFLATEBOUND)
-      SET(CMAKE_REQUIRED_LIBRARIES ${SAVE_CMAKE_REQUIRED_LIBRARIES})
-      IF(HAVE_CRC32 AND HAVE_COMPRESSBOUND AND HAVE_DEFLATEBOUND)
-        SET(ZLIB_LIBRARY ${ZLIB_LIBRARIES} CACHE INTERNAL "System zlib library")
-        SET(WITH_ZLIB "system" CACHE STRING
-          "Which zlib to use (possible values are 'bundled' or 'system')")
-        SET(ZLIB_SOURCES "")
-      ELSE()
-        SET(ZLIB_FOUND FALSE CACHE INTERNAL "Zlib found but not usable")
-        MESSAGE(STATUS "system zlib found but not usable")
-      ENDIF()
-    ENDIF()
-    IF(NOT ZLIB_FOUND)
-      MYSQL_USE_BUNDLED_ZLIB()
-    ENDIF()
+   find_package(ZLIB REQUIRED)
+   SET(ZLIB_LIBRARY ZLIB::ZLIB CACHE INTERNAL "System zlib library")
   ENDIF()
 ENDMACRO()