blob: 530f79b1ad06f5dbeae6e5ef7a3cda99956e6ab9 [file] [log] [blame]
MACHO_CURRENT_VERSION
---------------------
.. versionadded:: 3.17
What current version number is this target for Mach-O binaries.
For shared libraries on Mach-O systems (e.g. macOS, iOS)
the :prop_tgt:`MACHO_COMPATIBILITY_VERSION` property corresponds to the
*compatibility version* and ``MACHO_CURRENT_VERSION`` corresponds to the
*current version*. These are both embedded in the shared library binary
and can be checked with the ``otool -L <binary>`` command.
It should be noted that the ``MACHO_CURRENT_VERSION`` and
:prop_tgt:`MACHO_COMPATIBILITY_VERSION` properties do not affect the file
names or version-related symlinks that CMake generates for the library.
The :prop_tgt:`VERSION` and :prop_tgt:`SOVERSION` target properties still
control the file and symlink names. The ``install_name`` is also still
controlled by :prop_tgt:`SOVERSION`.
When ``MACHO_CURRENT_VERSION`` and :prop_tgt:`MACHO_COMPATIBILITY_VERSION`
are not given, :prop_tgt:`VERSION` and :prop_tgt:`SOVERSION` are used for
the version details to be embedded in the binaries respectively.
The ``MACHO_CURRENT_VERSION`` and :prop_tgt:`MACHO_COMPATIBILITY_VERSION`
properties only need to be given if the project needs to decouple the file
and symlink naming from the version details embedded in the binaries
(e.g. to match libtool conventions).