CMP0129¶
在版本 3.23 中添加。
MCST LCC 编译器的编译器 ID 现在是 LCC,而不是 GNU。
CMake 3.23 及以上版本将 MCST LCC 编译器识别为不同于 GNU 的编译器,它有自己的命令行和能力集。CMake 现在倾向于通过将 CMAKE_<LANG>_COMPILER_ID 变量设置为 LCC 而不是 GNU 来向项目呈现这一点。但是,现有项目可能会假设 LCC 的编译器 ID 在 3.23 之前的 CMake 版本中是 GNU。因此,此策略决定了在语言 <LANG> 由 project() 或 enable_language() 命令启用后,在 CMAKE_<LANG>_COMPILER_ID 变量中报告的 MCST LCC 编译器的编译器 ID。此策略必须在调用任一命令之前设置。
此策略的 OLD 行为是使用编译器 ID GNU(并将 CMAKE_<LANG>_COMPILER_VERSION 设置为支持的 GNU 编译器版本)。此策略的 NEW 行为是使用编译器 ID LCC,并将 CMAKE_<LANG>_SIMULATE_ID 设置为 GNU,并将 CMAKE_<LANG>_SIMULATE_VERSION 设置为支持的 GNU 编译器版本。
此策略是在 CMake 版本 3.23 中引入的。它可以通过 cmake_policy() 或 cmake_minimum_required() 来设置。如果未设置,CMake 默认不会发出警告,而是使用 OLD 行为。
有关控制警告的信息,请参阅 CMAKE_POLICY_WARNING_CMP0129 变量的文档。
注意
策略的 OLD 行为 根据定义已被弃用,并可能在未来的 CMake 版本中被移除。