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