-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Reorganise external libs to separate subdirectory #4996
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
d8caa21
to
3413c1c
Compare
e9586e6
to
9bb3cdf
Compare
…libraries (using OBJECT library type and link using BUILD_LOCAL_INTERFACE)
b1c4e4d
to
94538ea
Compare
94538ea
to
c34d433
Compare
1f69e89
to
2294324
Compare
…em only when necessary.
…e and make usage of hpdf only internal.
88dfe8f
to
3dcc0b7
Compare
bdea5f3
to
15ab4cb
Compare
8ee234c
to
a14ac2e
Compare
a14ac2e
to
f741f2c
Compare
…on, no need to link again to Poco::Zip
febe8f5
to
6b25b03
Compare
…n linking, disable it
… by making it atomic.
74f9fc0
to
7180ea8
Compare
|
if (POCO_UNBUNDLED) | ||
target_link_libraries(_BUNDLED_HPDF PRIVATE PNG::PNG) | ||
else() | ||
target_link_libraries(_BUNDLED_HPDF PRIVATE "$<BUILD_LOCAL_INTERFACE:PNG::PNG>") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there an alternate solution to the BUILD_LOCAL_INTERFACE generator expression here? I think it would be good if Poco kept the cmake minimum to 3.15, or at least not jumping all the way to 3.26.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was not able to find other solution that does not involve writing own custom CMake scripts. And CMake 3.26 is the first version that has clean solution to link private Poco library and not get undefined export errors.
Closes #4358.
Source code of external libraries is moved to subdirectory
dependencies
where each of the libraries has its own subdirectory.When creating a bundled build, a static library is created and then linked where appropriate. For unbundled builds system provided library is linked.
This mechanism allows cleaner separation of Poco and other code, easier upgrade and the possibility to have fine-grained bundled options per external library.