CMP0063¶
警告
此策略的 OLD 行为已在 CMake 4.0 版本中移除。此策略必须通过调用 cmake_minimum_required() 或 cmake_policy() 来设置为 NEW。
3.3 版本中新增。
尊重所有目标类型的可见性属性。
那 <LANG>_VISIBILITY_PRESET 和 VISIBILITY_INLINES_HIDDEN 目标属性会影响动态链接期间符号的可见性。当它们首次引入时,这些属性仅影响共享库、模块库以及设置了 ENABLE_EXPORTS 属性的库的源文件的编译。这对于具有插件的共享库和可执行文件的基本用例已足够。然而,某些源文件可能会作为静态库或对象库的一部分进行编译,然后稍后链接到共享库中。CMake 3.3 及更高版本倾向于尊重这些属性,用于在所有目标类型中编译的源文件。此策略是为了保留那些期望这些属性仅对某些目标类型生效的项目而兼容的。
此策略的 OLD 行为是忽略静态库、对象库以及没有导出符号的可执行文件的可见性属性。此策略的 NEW 行为是尊重所有目标类型的可见性属性。
此策略引入于 CMake 版本 3.3。在 CMake 版本 4.0 移除之前,可以通过 cmake_policy() 或 cmake_minimum_required() 进行设置。如果未设置,CMake 会发出警告并使用 OLD 行为。