MACHO_CURRENT_VERSION¶
在 3.17 版本中添加。
此目标文件对应的 Mach-O 二进制文件的当前版本号。
对于 Mach-O 系统(例如 macOS、iOS)上的共享库,MACHO_COMPATIBILITY_VERSION 属性对应于兼容版本,而 MACHO_CURRENT_VERSION 对应于当前版本。这两个版本都会嵌入到共享库二进制文件中,并可以通过 otool -L <binary> 命令进行检查。
需要注意的是,MACHO_CURRENT_VERSION 和 MACHO_COMPATIBILITY_VERSION 属性不会影响 CMake 为库生成的文件名或与版本相关的符号链接。 VERSION 和 SOVERSION 目标属性仍然控制文件名和符号链接。 install_name 也仍然由 SOVERSION 控制。
当未提供 MACHO_CURRENT_VERSION 和 MACHO_COMPATIBILITY_VERSION 时,将分别使用 VERSION 和 SOVERSION 来嵌入到二进制文件中的版本详细信息。只有当项目需要将文件名和符号链接命名与嵌入到二进制文件中的版本详细信息分离(例如,以匹配 libtool 约定)时,才需要提供 MACHO_CURRENT_VERSION 和 MACHO_COMPATIBILITY_VERSION 属性。