From 6484d942a25914a43135caf1f9c6ff54b228719e Mon Sep 17 00:00:00 2001 From: Matthias Vogelgesang Date: Wed, 24 Jul 2013 10:37:52 +0200 Subject: Fix ABI versioning --- CMakeLists.txt | 13 +++++++++---- NEWS | 13 ++++++------- src/CMakeLists.txt | 4 ++-- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a1452c4..7f65e9c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,13 +2,18 @@ cmake_minimum_required(VERSION 2.8) project(uca C) set(TARNAME "libuca") -set(UCA_VERSION_MAJOR "1") -set(UCA_VERSION_MINOR "3") -set(UCA_VERSION_PATCH "0dev") set(UCA_DESCRIPTION "Unified Camera Access") +# These are software release versions +set(UCA_VERSION_MAJOR "1") +set(UCA_VERSION_MINOR "3") +set(UCA_VERSION_PATCH "0") set(UCA_VERSION_STRING "${UCA_VERSION_MAJOR}.${UCA_VERSION_MINOR}.${UCA_VERSION_PATCH}") -set(UCA_ABI_VERSION "${UCA_VERSION_MAJOR}.${UCA_VERSION_MINOR}") + +# Increase the ABI version when binary compatibility cannot be guaranteed, e.g. +# symbols have been removed, function signatures, structures, constants etc. +# changed. +set(UCA_ABI_VERSION "2") set(CPACK_PACKAGE_VERSION "${UCA_VERSION_STRING}") set(CPACK_PACKAGE_NAME "${TARNAME}") diff --git a/NEWS b/NEWS index dd52495..063a8ca 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,12 @@ Changelog Changes in libuca 1.3 --------------------- +### Correct ABI versioning + +Until now, the ABI version was not set correctly and all versions prior 1.3 bear +the same ABI version 1. This version has ABI version 2 and all subsequent +versions will increase it if the ABI breaks. + ### Minor changes - Added `sensor-pixel-width` and `sensor-pixel-height` to describe the cameras @@ -67,16 +73,13 @@ The plugin manager adds a dependency on GModule (pkg-config package - It is now possible to generate GObject introspection meta data to bind libuca to all languages that support GObject introspection. A first experiment of UcaDevice using this was successful and the camera showed up in Jive. - - Added virtual function uca_camera_stop_readout() to cleanup after using uca_camera_start_readout(). - - There is now a mechanism to register and query physical units of camera properties. Camera plugins must call uca_camera_register_unit() for each property that they want to have a physical unit (e.g. UCA_UNIT_SECOND) attached to. Client programs can get this information with uca_camera_get_unit(). - - The control GUI learned some new tricks: live histogram, zooming and recording into an internal ring buffer. @@ -108,15 +111,11 @@ Changes in libuca 0.5.0 ----------------------- - Put work under LGPL 2.1 - - Adapt cameras/ipe.c to support the current driver API - - Adapt cameras/pco.c to support libpco 0.3 - - API changes - new enum type uca_buffer_status - uca_cam_grab_callback()s have to return uca_buffer_status - typedef all types - - New symbols: - uca_cam_release_buffer() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6d4d6b9..a692108 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -47,8 +47,8 @@ add_library(uca SHARED ${CMAKE_CURRENT_BINARY_DIR}/uca-enums.c) set_target_properties(uca PROPERTIES - VERSION ${UCA_ABI_VERSION} - SOVERSION ${UCA_VERSION_MAJOR}) + VERSION ${UCA_VERSION_STRING} + SOVERSION ${UCA_ABI_VERSION}) target_link_libraries(uca ${UCA_DEPS}) -- cgit v1.2.3