vcpkg/ports/poco/0003-fix-dependency.patch
Cheney Wang e9ffd9892f
[poco] Fixing target EXPAT::EXPAT is not found (#27711)
* [poco] Fixing target EXPAT::EXPAT is not found

* x-add-version

* Add new line
2022-11-09 11:03:26 -08:00

211 lines
6.6 KiB
Diff

diff --git a/CMakeLists.txt b/CMakeLists.txt
index c552091..f05f50c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -90,8 +90,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)
@@ -123,22 +121,20 @@ 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 unofficial::libmariadb)
+ endif()
endif()
if(ENABLE_DATA_POSTGRESQL)
find_package(PostgreSQL REQUIRED)
-else()
- find_package(PostgreSQL)
endif()
if(PostgreSQL_FOUND)
@@ -223,6 +219,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)
@@ -351,8 +350,11 @@ if(EXISTS ${PROJECT_SOURCE_DIR}/Prometheus AND ENABLE_PROMETHEUS)
list(APPEND Poco_COMPONENTS "Prometheus")
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()
@@ -492,15 +494,6 @@ install(
Devel
)
-if(POCO_UNBUNDLED)
- install(FILES cmake/FindPCRE2.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 0772af6..692fd2f 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 ce411cf..2791523 100644
--- a/Data/MySQL/CMakeLists.txt
+++ b/Data/MySQL/CMakeLists.txt
@@ -18,10 +18,10 @@ set_target_properties(DataMySQL
PROPERTIES
VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION}
OUTPUT_NAME PocoDataMySQL
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 2386590..81b2c8e 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 3a176d7..d8055cb 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/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..4864b32 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}