Fix shared object versioning

This commit is contained in:
Miloš Komarčević 2023-01-25 16:31:33 +01:00
parent 3403dabec2
commit caddbf663d
2 changed files with 10 additions and 1 deletions

View File

@ -12,6 +12,15 @@ project(exiv2 # use TWEAK to categorize the build
LANGUAGES C CXX
)
# Shared Object versioning (SemVer-like: must bump major on API breakage)
if(PROJECT_VERSION_MAJOR EQUAL 0)
# support legacy scheme (e.g. 0.27.x -> 27)
set(EXIV2LIB_SOVERSION ${PROJECT_VERSION_MINOR})
else()
# restart from 30
math(EXPR EXIV2LIB_SOVERSION "30 + (${PROJECT_VERSION_MAJOR} - 1)")
endif()
if(NOT CMAKE_BUILD_TYPE)
set (CMAKE_BUILD_TYPE Release)
endif()

View File

@ -160,7 +160,7 @@ endif()
set_target_properties( exiv2lib PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MINOR}
SOVERSION ${EXIV2LIB_SOVERSION}
OUTPUT_NAME exiv2
PDB_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMPILE_FLAGS ${EXTRA_COMPILE_FLAGS}