build: set SOVERSION to major.minor

Dynarmic uses semantic versioning, restricting backwards-incompatible
changes to major releases. This backwards compatibility, though, refers
to API changes, and disregards ABI stability. Since having to maintain a
compatible ABI between major releases is somewhat of a pain, and it
arguably doesn't matter that much for dynarmic, setting the SOVERSION to
major.minor allows for breaking ABI changes to be made between feature
releases, and not only major ones.

To be clear, this patch doesn't try to enforce a new policy, but just
reflects how the project has handled ABI changes in the past. That is,
these kind of changes have been made already.

This patch comes as a fix for Debian bug <https://bugs.debian.org/1041270>.
This commit is contained in:
Andrea Pappacoda 2023-07-20 18:44:23 +02:00 committed by merry
parent daa3dedf88
commit 831984b519

View file

@ -455,7 +455,7 @@ target_include_directories(dynarmic PUBLIC
) )
set_target_properties(dynarmic PROPERTIES set_target_properties(dynarmic PROPERTIES
VERSION ${dynarmic_VERSION} VERSION ${dynarmic_VERSION}
SOVERSION ${dynarmic_VERSION_MAJOR} SOVERSION ${dynarmic_VERSION_MAJOR}.${dynarmic_VERSION_MINOR}
) )
target_compile_options(dynarmic PRIVATE ${DYNARMIC_CXX_FLAGS}) target_compile_options(dynarmic PRIVATE ${DYNARMIC_CXX_FLAGS})
target_link_libraries(dynarmic target_link_libraries(dynarmic