MACHO_COMPATIBILITY_VERSIONΒΆ
What compatibility version number is this target for Mach-O binaries.
For shared libraries on Mach-O systems (e.g. macOS, iOS)
the 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
MACHO_COMPATIBILITY_VERSION
properties do not affect the file
names or version-related symlinks that CMake generates for the library.
The VERSION
and SOVERSION
target properties still
control the file and symlink names. The install_name
is also still
controlled by SOVERSION
.
When MACHO_CURRENT_VERSION
and MACHO_COMPATIBILITY_VERSION
are not given, VERSION
and SOVERSION
are used for
the version details to be embedded in the binaries respectively.
The MACHO_CURRENT_VERSION
and 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).