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).