CMake: Add missing link libraries in dependencies (fix #5044). (#5046)

* fix(dependencies, CMake): Add missing link libraries in dependencies.

* chore(CI): Enable PDF in linux-gcc-cmake-visibility-hidden.

* enh(CMake): do not link zlib to PDF when building a shared library
This commit is contained in:
Matej Kenda
2025-10-15 16:48:17 +02:00
committed by GitHub
parent 852cf714ba
commit 2ec40a0528
4 changed files with 9 additions and 3 deletions

View File

@@ -125,7 +125,7 @@ jobs:
- run: sudo apt -y update && sudo apt -y install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev redis-server
- run: >-
cmake -S. -Bcmake-build -GNinja -DCMAKE_CXX_VISIBILITY_PRESET=hidden
-DENABLE_PDF=OFF -DENABLE_TESTS=ON -DENABLE_DATA_MYSQL=ON -DENABLE_DATA_ODBC=ON
-DENABLE_PDF=ON -DENABLE_TESTS=ON -DENABLE_DATA_MYSQL=ON -DENABLE_DATA_ODBC=ON
- run: cmake --build cmake-build --target all
- uses: ./.github/actions/retry-action
with:

View File

@@ -20,11 +20,14 @@ add_library(PDF ${SRCS})
target_link_libraries(PDF PRIVATE "$<BUILD_LOCAL_INTERFACE:HPDF::HPDF>")
if (POCO_UNBUNDLED)
target_link_libraries(PDF PRIVATE PNG::PNG)
target_link_libraries(PDF PRIVATE PNG::PNG ZLIB::ZLIB)
else()
target_link_libraries(PDF PRIVATE "$<BUILD_LOCAL_INTERFACE:PNG::PNG>")
if (NOT BUILD_SHARED_LIBS OR WIN32)
target_link_libraries(PDF PRIVATE "$<BUILD_LOCAL_INTERFACE:ZLIB::ZLIB>")
endif()
# else static zlib is already linked to Foundation
endif()
add_library(Poco::PDF ALIAS PDF)
set_target_properties(PDF

View File

@@ -20,6 +20,7 @@ target_include_directories(_BUNDLED_HPDF
if (POCO_UNBUNDLED)
target_link_libraries(_BUNDLED_HPDF PRIVATE PNG::PNG)
else()
target_link_libraries(_BUNDLED_HPDF PRIVATE "$<BUILD_LOCAL_INTERFACE:ZLIB::ZLIB>")
target_link_libraries(_BUNDLED_HPDF PRIVATE "$<BUILD_LOCAL_INTERFACE:PNG::PNG>")
endif()

View File

@@ -32,6 +32,8 @@ else()
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
)
target_link_libraries(_BUNDLED_PNG PRIVATE "$<BUILD_LOCAL_INTERFACE:ZLIB::ZLIB>")
add_library(PNG::PNG ALIAS _BUNDLED_PNG)
endif()