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
MACOSX_FRAMEWORK_IDENTIFIER com.cmake.dynamicFramework
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
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer"
)

View File

@ -3,12 +3,25 @@ SOVERSION
What version number is this target.
For shared libraries VERSION and SOVERSION can be used to specify the
build version and API version respectively. When building or
For shared libraries :prop_tgt:`VERSION` and ``SOVERSION`` can be used to
specify the build version and API version respectively. When building or
installing appropriate symlinks are created if the platform supports
symlinks and the linker supports so-names. If only one of both is
specified the missing is assumed to have the same version number.
SOVERSION is ignored if NO_SONAME property is set. 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.
``SOVERSION`` is ignored if :prop_tgt:`NO_SONAME` property is set.
Windows Versions
^^^^^^^^^^^^^^^^
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.
For shared libraries VERSION and SOVERSION can be used to specify the
build version and API version respectively. When building or
For shared libraries ``VERSION`` and :prop_tgt:`SOVERSION` can be used
to specify the build version and API version respectively. When building or
installing appropriate symlinks are created if the platform supports
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
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
platform supports symlinks. 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.
platform supports symlinks.
Windows Versions
^^^^^^^^^^^^^^^^
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.