Help: Describe VERSION and SOVERSION meanings for Mach-O binaries

This commit is contained in:
Bartosz Kosiorek 2016-06-20 14:34:09 +02:00 committed by Brad King
parent d152ae123d
commit 00caa1dde8
3 changed files with 43 additions and 13 deletions

View File

@ -26,6 +26,10 @@ Example of creation ``dynamicFramework``:
FRAMEWORK_VERSION C FRAMEWORK_VERSION C
MACOSX_FRAMEWORK_IDENTIFIER com.cmake.dynamicFramework MACOSX_FRAMEWORK_IDENTIFIER com.cmake.dynamicFramework
MACOSX_FRAMEWORK_INFO_PLIST Info.plist MACOSX_FRAMEWORK_INFO_PLIST Info.plist
# "current version" in semantic format in Mach-O binary file
VERSION 16.4.0
# "compatibility version" in semantic format in Mach-O binary file
SOVERSION 1.0.0
PUBLIC_HEADER dynamicFramework.h PUBLIC_HEADER dynamicFramework.h
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer" XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer"
) )

View File

@ -3,12 +3,25 @@ SOVERSION
What version number is this target. What version number is this target.
For shared libraries VERSION and SOVERSION can be used to specify the For shared libraries :prop_tgt:`VERSION` and ``SOVERSION`` can be used to
build version and API version respectively. When building or specify the build version and API version respectively. When building or
installing appropriate symlinks are created if the platform supports installing appropriate symlinks are created if the platform supports
symlinks and the linker supports so-names. If only one of both is symlinks and the linker supports so-names. If only one of both is
specified the missing is assumed to have the same version number. specified the missing is assumed to have the same version number.
SOVERSION is ignored if NO_SONAME property is set. For shared ``SOVERSION`` is ignored if :prop_tgt:`NO_SONAME` property is set.
libraries and executables on Windows the VERSION attribute is parsed
to extract a "major.minor" version number. These numbers are used as Windows Versions
the image version of the binary. ^^^^^^^^^^^^^^^^
For shared libraries and executables on Windows the :prop_tgt:`VERSION`
attribute is parsed to extract a ``<major>.<minor>`` version number.
These numbers are used as the image version of the binary.
Mach-O Versions
^^^^^^^^^^^^^^^
For shared libraries and executables on Mach-O systems (e.g. OS X, iOS),
the ``SOVERSION`` property corresponds to *compatibility version* and
:prop_tgt:`VERSION` to *current version*. See the :prop_tgt:`FRAMEWORK` target
property for an example. Versions of Mach-O binaries may be checked with the
``otool -L <binary>`` command.

View File

@ -3,14 +3,27 @@ VERSION
What version number is this target. What version number is this target.
For shared libraries VERSION and SOVERSION can be used to specify the For shared libraries ``VERSION`` and :prop_tgt:`SOVERSION` can be used
build version and API version respectively. When building or to specify the build version and API version respectively. When building or
installing appropriate symlinks are created if the platform supports installing appropriate symlinks are created if the platform supports
symlinks and the linker supports so-names. If only one of both is symlinks and the linker supports so-names. If only one of both is
specified the missing is assumed to have the same version number. For specified the missing is assumed to have the same version number. For
executables VERSION can be used to specify the build version. When executables ``VERSION`` can be used to specify the build version. When
building or installing appropriate symlinks are created if the building or installing appropriate symlinks are created if the
platform supports symlinks. For shared libraries and executables on platform supports symlinks.
Windows the VERSION attribute is parsed to extract a "major.minor"
version number. These numbers are used as the image version of the Windows Versions
binary. ^^^^^^^^^^^^^^^^
For shared libraries and executables on Windows the ``VERSION``
attribute is parsed to extract a ``<major>.<minor>`` version number.
These numbers are used as the image version of the binary.
Mach-O Versions
^^^^^^^^^^^^^^^
For shared libraries and executables on Mach-O systems (e.g. OS X, iOS),
the :prop_tgt:`SOVERSION` property correspond to *compatibility version* and
``VERSION`` to *current version*. See the :prop_tgt:`FRAMEWORK` target
property for an example. Versions of Mach-O binaries may be checked with the
``otool -L <binary>`` command.