Closed chewi closed 1 month ago
Thank you for your contribution @chewi! We will review the pull request and get back to you soon.
My bad, I accidentally pushed my first broken iteration of this. Should be good now.
API change check
API changes are not detected in this pull request.
Thank you, @chewi!
The SONAME currently written to shared libraries is unversioned, e.g. libazure-core.so. The SDK's ABI is unstable, so replacing these .so files with newer versions will immediately break any consumers.
Setting the VERSION property results in libazure-core.so being a symlink that is used at build time to point to the versioned library, e.g. libazure-core.so.1.14.0. Consumers point directly to the versioned library and continue to work against the older version when the library is upgraded. Once rebuilt, they then point to the newer version instead.
It is more common to use an ABI version that is separate to the library version, but it makes sense to use the latter when the ABI is unstable. The Boost libraries do exactly this.
This change has no effect on static libraries, which is the more common use case. See the CMake documentation for its wider effects.
https://cmake.org/cmake/help/latest/prop_tgt/VERSION.html
Pull Request Checklist
Please leverage this checklist as a reminder to address commonly occurring feedback when submitting a pull request to make sure your PR can be reviewed quickly:
See the detailed list in the contributing guide.