pocoproject / poco

The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.
https://pocoproject.org
Other
8.07k stars 2.11k forks source link

Ability to Specify CMake NO_SONAME #4472

Closed andrewauclair closed 4 months ago

andrewauclair commented 4 months ago

This changes adds the ability to set the cmake NO_SONAME target property on Poco targets. Fixes #4466.

andrewauclair commented 4 months ago

Should at least some CI checks to make sure the default behavior still generates named so files (numbered in this case, .so.101). I don't think it's critical to check that it works properly with POCO_NO_SONAME=ON. Unless there's some way to build a single project (i.e. Foundation) and verify on a .so file is created.

aleks-f commented 4 months ago

Unless there's some way to build a single project (i.e. Foundation) and verify on a .so file is created.

There is a way - disable everything except CppUnit and Foundation, execute a command verifying that relevant files (don't) exist, and run foundation tests to make sure everything executes as expected.

The type and structure of the CI job would be similar to this one:

https://github.com/pocoproject/poco/blob/c624b2787849a92e5bcb4eb9ec67e6e363bbadad/.github/workflows/ci.yml#L149-L164

andrewauclair commented 4 months ago

After trying this for a while and running into RPATH issues, I'm thinking this might have been a dumb idea to do in the first place. Just because it's fewer files to install doesn't mean it's better. I should switch back to using sonames.