CMP0063¶
在 3.3 版本加入.
尊重所有目标类型的可见性属性。
<LANG>_VISIBILITY_PRESET 和 VISIBILITY_INLINES_HIDDEN 目标属性影响动态链接期间符号的可见性。首次引入时,这些属性仅影响共享库、模块库和具有 ENABLE_EXPORTS 属性集的可执行文件中的源代码编译。这对于带有插件的共享库和可执行文件的基本用例来说已经足够了。但是,某些源代码可能会编译为静态库或对象库的一部分,然后再链接到共享库中。 CMake 3.3 及更高版本更愿意为在所有目标类型中编译的源提供这些属性。此策略为期望属性仅适用于某些目标类型的项目保留兼容性。
此策略的“旧”行为是忽略静态库、对象库和没有导出的可执行文件的可见性属性。此策略的“新”行为是尊重所有目标类型的可见性属性。
此策略是在 CMake 版本 3.3 中引入的。 CMake 版本 |发布|当未设置策略并使用“旧”行为时发出警告。使用 cmake_policy() 命令将其显式设置为 OLD 或 NEW。
备注
策略的“旧”行为是 :manual:根据定义 <cmake-policies(7)> 已弃用,并且可能会在未来版本的 CMake 中删除。