azure-sdk-for-cpp/sdk/template
James Le Cuirot a091f4c8e0
Set VERSION property against all libraries to write versioned SONAME (#6087)
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
2024-10-11 11:42:13 -07:00
..
azure-template Set VERSION property against all libraries to write versioned SONAME (#6087) 2024-10-11 11:42:13 -07:00
CMakeLists.txt Use standard syntax for MIT license (#4786) 2023-07-12 22:37:36 -07:00
ci.yml `1ES Template` Refactor (#5441) 2024-03-12 15:20:45 -07:00