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
This commit is contained in:
parent
1da4dae17e
commit
a091f4c8e0
@ -86,6 +86,7 @@ create_code_coverage(attestation azure-security-attestation azure-security-attes
|
||||
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-security-attestation PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-security-attestation ${AZ_LIBRARY_VERSION})
|
||||
|
||||
az_vcpkg_export(
|
||||
|
||||
@ -177,6 +177,7 @@ target_link_libraries(azure-core-amqp PRIVATE
|
||||
PUBLIC Azure::azure-core)
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-core-amqp PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-core-amqp ${AZ_LIBRARY_VERSION})
|
||||
|
||||
az_vcpkg_export(
|
||||
|
||||
@ -83,6 +83,8 @@ get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
generate_documentation(azure-core-tracing-opentelemetry ${AZ_LIBRARY_VERSION})
|
||||
|
||||
if(BUILD_AZURE_CORE_TRACING_OPENTELEMETRY)
|
||||
set_target_properties(azure-core-tracing-opentelemetry PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
|
||||
az_vcpkg_export(
|
||||
azure-core-tracing-opentelemetry
|
||||
CORE_TRACING_OPENTELEMETRY
|
||||
|
||||
@ -192,6 +192,7 @@ if(BUILD_TRANSPORT_WINHTTP)
|
||||
endif()
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-core PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-core ${AZ_LIBRARY_VERSION})
|
||||
|
||||
az_vcpkg_export(
|
||||
|
||||
@ -91,6 +91,7 @@ target_link_libraries(azure-messaging-eventhubs-checkpointstore-blob
|
||||
create_code_coverage(eventhubs azure-messaging-eventhubs-checkpointstore-blob azure-messaging-eventhubs-blobcheckpointstore-test "tests?/*;samples?/*")
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-messaging-eventhubs-checkpointstore-blob PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
#generate_documentation(azure-messaging-eventhubs-checkpointstore-blob ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-messaging-eventhubs-checkpointstore-blob ${AZ_LIBRARY_VERSION})
|
||||
|
||||
|
||||
@ -116,6 +116,7 @@ target_compile_definitions(azure-messaging-eventhubs PRIVATE _azure_BUILDING_SDK
|
||||
create_code_coverage(eventhubs azure-messaging-eventhubs azure-messaging-eventhubs-test "tests?/*;samples?/*")
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-messaging-eventhubs PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-messaging-eventhubs ${AZ_LIBRARY_VERSION})
|
||||
|
||||
add_subdirectory(test)
|
||||
|
||||
@ -117,6 +117,7 @@ else()
|
||||
endif()
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-identity PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-identity ${AZ_LIBRARY_VERSION})
|
||||
|
||||
az_vcpkg_export(
|
||||
|
||||
@ -95,6 +95,7 @@ target_compile_definitions(azure-security-keyvault-administration PRIVATE _azure
|
||||
create_code_coverage(keyvault azure-security-keyvault-administration azure-security-keyvault-administration-test "tests?/*;samples?/*")
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-security-keyvault-administration PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-security-keyvault-administration ${AZ_LIBRARY_VERSION})
|
||||
if(BUILD_TESTING)
|
||||
|
||||
|
||||
@ -100,6 +100,7 @@ target_compile_definitions(azure-security-keyvault-certificates PRIVATE _azure_B
|
||||
create_code_coverage(keyvault azure-security-keyvault-certificates azure-security-keyvault-certificates-test "tests?/*;samples?/*")
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-security-keyvault-certificates PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-security-keyvault-certificates ${AZ_LIBRARY_VERSION})
|
||||
|
||||
if(BUILD_TESTING)
|
||||
|
||||
@ -138,6 +138,7 @@ target_compile_definitions(azure-security-keyvault-keys PRIVATE _azure_BUILDING_
|
||||
create_code_coverage(keyvault azure-security-keyvault-keys azure-security-keyvault-keys-test "tests?/*;samples?/*")
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-security-keyvault-keys PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-security-keyvault-keys ${AZ_LIBRARY_VERSION})
|
||||
|
||||
if(BUILD_TESTING)
|
||||
|
||||
@ -133,6 +133,7 @@ target_compile_definitions(azure-security-keyvault-secrets PRIVATE _azure_BUILDI
|
||||
create_code_coverage(keyvault azure-security-keyvault-secrets azure-security-keyvault-secrets-test "tests?/*;samples?/*")
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-security-keyvault-secrets PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-security-keyvault-secrets ${AZ_LIBRARY_VERSION})
|
||||
if(BUILD_TESTING)
|
||||
|
||||
|
||||
@ -96,6 +96,7 @@ target_link_libraries(azure-storage-blobs PUBLIC Azure::azure-storage-common)
|
||||
target_compile_definitions(azure-storage-blobs PRIVATE _azure_BUILDING_SDK)
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-storage-blobs PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-storage-blobs ${AZ_LIBRARY_VERSION})
|
||||
|
||||
az_vcpkg_export(
|
||||
|
||||
@ -107,6 +107,7 @@ else()
|
||||
endif()
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-storage-common PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-storage-common ${AZ_LIBRARY_VERSION})
|
||||
|
||||
az_vcpkg_export(
|
||||
|
||||
@ -92,6 +92,7 @@ target_include_directories(
|
||||
target_link_libraries(azure-storage-files-datalake PUBLIC Azure::azure-storage-blobs)
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-storage-files-datalake PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-storage-files-datalake ${AZ_LIBRARY_VERSION})
|
||||
|
||||
az_vcpkg_export(
|
||||
|
||||
@ -88,6 +88,7 @@ target_include_directories(
|
||||
target_link_libraries(azure-storage-files-shares PUBLIC Azure::azure-storage-common)
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-storage-files-shares PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-storage-files-shares ${AZ_LIBRARY_VERSION})
|
||||
|
||||
az_vcpkg_export(
|
||||
|
||||
@ -81,6 +81,7 @@ target_include_directories(
|
||||
target_link_libraries(azure-storage-queues PUBLIC Azure::azure-storage-common)
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-storage-queues PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-storage-queues ${AZ_LIBRARY_VERSION})
|
||||
|
||||
az_vcpkg_export(
|
||||
|
||||
@ -106,6 +106,7 @@ target_include_directories(
|
||||
target_link_libraries(azure-data-tables PUBLIC Azure::azure-core)
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-data-tables PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-data-tables ${AZ_LIBRARY_VERSION})
|
||||
|
||||
az_vcpkg_export(
|
||||
|
||||
@ -78,6 +78,7 @@ add_library(Azure::azure-template ALIAS azure-template)
|
||||
create_code_coverage(template azure-template azure-template-test "tests?/*;samples?/*")
|
||||
|
||||
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
|
||||
set_target_properties(azure-template PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
|
||||
generate_documentation(azure-template ${AZ_LIBRARY_VERSION})
|
||||
|
||||
az_vcpkg_export(
|
||||
|
||||
Loading…
Reference in New Issue
Block a user