aboutsummaryrefslogtreecommitdiff
path: root/ports/poco/fix_dependency.patch
blob: 2fd917affa77de0e68210efbbf62b3d0f3d3305b (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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4e05272..44dd7cb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -82,8 +82,6 @@ option(FORCE_OPENSSL "Force usage of OpenSSL even under windows" OFF)
 
 if(ENABLE_CRYPTO OR ENABLE_NETSSL OR ENABLE_JWT)
 	find_package(OpenSSL REQUIRED)
-else()
-	find_package(OpenSSL)
 endif()
 
 if(OPENSSL_FOUND)
@@ -113,24 +111,19 @@ else()
 	option(ENABLE_APACHECONNECTOR "Enable ApacheConnector" OFF)
 endif()
 
-if(ENABLE_DATA_MYSQL)
-	find_package(MySQL REQUIRED)
-else()
-	find_package(MySQL)
-endif()
+option(ENABLE_DATA "Enable Data" OFF)
+option(ENABLE_DATA_MYSQL "Enable Data MySQL or MariaDB" OFF)
 
-if(MYSQL_FOUND)
-	option(ENABLE_DATA "Enable Data" ON)
-	option(ENABLE_DATA_MYSQL "Enable Data MySQL or MariaDB" ON)
-else()
-	option(ENABLE_DATA "Enable Data" OFF)
-	option(ENABLE_DATA_MYSQL "Enable Data MySQL or MariaDB" OFF)
+if(ENABLE_DATA_MYSQL)
+    find_package(libmysql)
+    if (NOT libmysql_FOUND)
+        find_package(unofficial-libmariadb CONFIG REQUIRED)
+        set(MYSQL_LIBRARIES libmariadb)
+    endif()
 endif()
 
 if(ENABLE_DATA_POSTGRESQL)
 	find_package(PostgreSQL REQUIRED)
-else()
-	find_package(PostgreSQL)
 endif()
 
 if(PostgreSQL_FOUND)
@@ -207,6 +200,9 @@ include(DefinePlatformSpecifc)
 # Collect the built libraries and include dirs, the will be used to create the PocoConfig.cmake file
 set(Poco_COMPONENTS "")
 
+# Do not declare the link library in the code!
+add_definitions(-DPOCO_NO_AUTOMATIC_LIBS)
+
 if(ENABLE_TESTS)
 	add_subdirectory(CppUnit)
 	set(ENABLE_XML ON CACHE BOOL "Enable XML" FORCE)
@@ -339,8 +335,11 @@ if(EXISTS ${PROJECT_SOURCE_DIR}/Redis AND ENABLE_REDIS)
 	list(APPEND Poco_COMPONENTS "Redis")
 endif()
 
-if(EXISTS ${PROJECT_SOURCE_DIR}/PDF AND ENABLE_PDF)
-	add_subdirectory(PDF)
+if(ENABLE_PDF)
+	include(SelectLibraryConfigurations)
+	find_library(PocoPDF_LIBRARY_RELEASE NAMES libhpdf)
+	find_library(PocoPDF_LIBRARY_DEBUG NAMES libhpdfd)
+	select_library_configurations(PocoPDF)
 	list(APPEND Poco_COMPONENTS "PDF")
 endif()
 
@@ -478,15 +477,6 @@ install(
 		Devel
 )
 
-if(POCO_UNBUNDLED)
-	install(FILES cmake/FindPCRE.cmake
-			DESTINATION "${PocoConfigPackageLocation}")
-	install(FILES cmake/V39/FindEXPAT.cmake
-			DESTINATION "${PocoConfigPackageLocation}/V39")
-	install(FILES cmake/V313/FindSQLite3.cmake
-			DESTINATION "${PocoConfigPackageLocation}/V313")
-endif()
-
 message(STATUS "CMake ${CMAKE_VERSION} successfully configured ${PROJECT_NAME} using ${CMAKE_GENERATOR} generator")
 message(STATUS "${PROJECT_NAME} package version: ${PROJECT_VERSION}")
 if(BUILD_SHARED_LIBS)
diff --git a/Data/CMakeLists.txt b/Data/CMakeLists.txt
index 7d1e99e..9d0a85c 100644
--- a/Data/CMakeLists.txt
+++ b/Data/CMakeLists.txt
@@ -45,7 +45,7 @@ else(ENABLE_DATA_SQLITE)
 	message(STATUS "SQLite Support Disabled")
 endif()
 
-if(MYSQL_FOUND AND ENABLE_DATA_MYSQL)
+if((MYSQL_FOUND OR unofficial-libmariadb_FOUND) AND ENABLE_DATA_MYSQL)
 	message(STATUS "MySQL Support Enabled")
 	add_subdirectory(MySQL)
 else()
diff --git a/Data/MySQL/CMakeLists.txt b/Data/MySQL/CMakeLists.txt
index f71b145..7034974 100644
--- a/Data/MySQL/CMakeLists.txt
+++ b/Data/MySQL/CMakeLists.txt
@@ -21,7 +21,7 @@ set_target_properties(DataMySQL
 	DEFINE_SYMBOL MySQL_EXPORTS
 )
 
-target_link_libraries(DataMySQL PUBLIC Poco::Data MySQL::client)
+target_link_libraries(DataMySQL PUBLIC Poco::Data ${MYSQL_LIBRARIES})
 target_include_directories(DataMySQL
 	PUBLIC
 		$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
diff --git a/Data/MySQL/include/Poco/Data/MySQL/MySQL.h b/Data/MySQL/include/Poco/Data/MySQL/MySQL.h
index 6ddcd39..9e50803 100644
--- a/Data/MySQL/include/Poco/Data/MySQL/MySQL.h
+++ b/Data/MySQL/include/Poco/Data/MySQL/MySQL.h
@@ -57,8 +57,6 @@
 	#endif
 	#if defined(LIBMARIADB)
 		#pragma comment(lib, "libmariadb")
-	#else
-		#pragma comment(lib, "libmysql")
 	#endif
 #endif
 
diff --git a/Data/SQLite/CMakeLists.txt b/Data/SQLite/CMakeLists.txt
index b52e2c5..0dcfae2 100644
--- a/Data/SQLite/CMakeLists.txt
+++ b/Data/SQLite/CMakeLists.txt
@@ -7,7 +7,7 @@ file(GLOB_RECURSE HDRS_G "include/*.h")
 POCO_HEADERS_AUTO(SQLITE_SRCS ${HDRS_G})
 
 if(POCO_UNBUNDLED)
-	find_package(SQLite3 REQUIRED)
+	find_package(unofficial-sqlite3 CONFIG REQUIRED)
 else()
 	# sqlite3
 	POCO_SOURCES(SQLITE_SRCS sqlite3
@@ -43,7 +43,7 @@ target_include_directories(DataSQLite
 )
 
 if(POCO_UNBUNDLED)
-		target_link_libraries(DataSQLite PUBLIC SQLite::SQLite3)
+		target_link_libraries(DataSQLite PUBLIC unofficial::sqlite3::sqlite3)
 	target_compile_definitions(DataSQLite PUBLIC
 		POCO_UNBUNDLED
 		SQLITE_THREADSAFE=1
diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt
index 6f5100f..c9fa2e5 100644
--- a/Foundation/CMakeLists.txt
+++ b/Foundation/CMakeLists.txt
@@ -35,7 +35,7 @@ POCO_MESSAGES(SRCS Logging src/pocomsg.mc)
 # If POCO_UNBUNDLED is enabled we try to find the required packages
 # The configuration will fail if the packages are not found
 if(POCO_UNBUNDLED)
-	find_package(PCRE REQUIRED)
+	find_package(unofficial-pcre CONFIG REQUIRED)
 	find_package(ZLIB REQUIRED)
 
 	#HACK: Unicode.cpp requires functions from these files. The can't be taken from the library
@@ -101,7 +101,7 @@ set_target_properties(Foundation
 )
 
 if(POCO_UNBUNDLED)
-	target_link_libraries(Foundation PUBLIC Pcre::Pcre ZLIB::ZLIB)
+	target_link_libraries(Foundation PUBLIC unofficial::pcre::pcre ZLIB::ZLIB)
 	target_compile_definitions(Foundation PUBLIC POCO_UNBUNDLED)
     add_definitions(
         -D_pcre_utf8_table1=_poco_pcre_utf8_table1
diff --git a/Foundation/cmake/PocoFoundationConfig.cmake b/Foundation/cmake/PocoFoundationConfig.cmake
index 46c2d3f..af2e78c 100644
--- a/Foundation/cmake/PocoFoundationConfig.cmake
+++ b/Foundation/cmake/PocoFoundationConfig.cmake
@@ -2,7 +2,7 @@ if(@POCO_UNBUNDLED@)
 	include(CMakeFindDependencyMacro)
 	list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
 	find_dependency(ZLIB REQUIRED)
-	find_dependency(PCRE REQUIRED)
+	find_dependency(unofficial-pcre REQUIRED)
 endif()
 
 include("${CMAKE_CURRENT_LIST_DIR}/PocoFoundationTargets.cmake")
diff --git a/XML/CMakeLists.txt b/XML/CMakeLists.txt
index 4fbf06f..793285a 100644
--- a/XML/CMakeLists.txt
+++ b/XML/CMakeLists.txt
@@ -20,7 +20,7 @@ endif()
 # If POCO_UNBUNDLED is enabled we try to find the required packages
 # The configuration will fail if the packages are not found
 if(POCO_UNBUNDLED)
-	find_package(EXPAT REQUIRED)
+	find_package(expat CONFIG REQUIRED)
 else()
 	POCO_SOURCES(SRCS expat
 		src/xmlparse.cpp
@@ -50,7 +50,7 @@ target_include_directories(XML
 )
 
 if(POCO_UNBUNDLED)
-	target_link_libraries(XML PUBLIC EXPAT::EXPAT)
+	target_link_libraries(XML PUBLIC expat::expat)
 	target_compile_definitions(XML PUBLIC POCO_UNBUNDLED)
 else()
 	if(WIN32)
diff --git a/XML/cmake/PocoXMLConfig.cmake b/XML/cmake/PocoXMLConfig.cmake
index ef58207..4ed94ec 100644
--- a/XML/cmake/PocoXMLConfig.cmake
+++ b/XML/cmake/PocoXMLConfig.cmake
@@ -4,7 +4,7 @@ if(@POCO_UNBUNDLED@)
 	if(CMAKE_VERSION VERSION_LESS "3.10")
 		list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/V39")
 	endif()
-	find_dependency(EXPAT REQUIRED)
+	find_dependency(expat CONFIG REQUIRED)
 endif()
 
 include("${CMAKE_CURRENT_LIST_DIR}/PocoXMLTargets.cmake")
diff --git a/cmake/PocoConfig.cmake.in b/cmake/PocoConfig.cmake.in
index 173eacd..936edf4 100644
--- a/cmake/PocoConfig.cmake.in
+++ b/cmake/PocoConfig.cmake.in
@@ -8,6 +8,13 @@ if (NOT Poco_FIND_COMPONENTS)
     return()
 endif()
 
+include(CMakeFindDependencyMacro)
+find_dependency(ZLIB REQUIRED)
+find_dependency(unofficial-pcre REQUIRED)
+if(Poco_FIND_REQUIRED_XML)
+    find_dependency(expat CONFIG REQUIRED)
+endif()
+
 set(_Poco_FIND_PARTS_REQUIRED)
 if (Poco_FIND_REQUIRED)
     set(_Poco_FIND_PARTS_REQUIRED REQUIRED)
@@ -23,7 +30,7 @@ set(_Poco_NOTFOUND_MESSAGE)
 
 # Let components find each other, but don't overwrite CMAKE_PREFIX_PATH
 set(_Poco_CMAKE_PREFIX_PATH_old ${CMAKE_PREFIX_PATH})
-set(CMAKE_PREFIX_PATH ${_Poco_install_prefix})
+set(CMAKE_PREFIX_PATH ${_Poco_install_prefix} ${CMAKE_PREFIX_PATH})
 
 foreach(module ${Poco_FIND_COMPONENTS})
     find_package(Poco${module}