CMP0129¶
在 3.23 版本加入.
MCST LCC 编译器的编译器 ID 现在是“LCC”,而不是“GNU”。
CMake 3.23 及更高版本将 MCST LCC 编译器识别为不同于“GNU”,具有自己的命令行和功能集。 CMake 现在更喜欢通过将 CMAKE_<LANG>_COMPILER_ID 变量设置为 LCC 而不是 GNU 来将其呈现给项目。然而,现有项目可能假设 LCC 的编译器 ID 是“GNU”,因为它在 3.23 之前的 CMake 版本中。因此,此策略为 MCST LCC 编译器确定在 project() 或 :command:` 启用语言 <LANG> 后在 CMAKE_<LANG>_COMPILER_ID 变量中报告哪个编译器 ID enable_language 命令。该策略必须在调用任一命令之前设置。
此策略的“旧”行为是使用编译器 ID“GNU”(并将 CMAKE_<LANG>_COMPILER_VERSION 设置为受支持的 GNU 编译器版本。)此策略的“新”行为是使用编译器 ID LCC,并将 CMAKE_<LANG>_SIMULATE_ID 设置为 GNU,并将 CMAKE_<LANG>_SIMULATE_VERSION 设置为受支持的 GNU 编译器版本。
此策略是在 CMake 版本 3.23 中引入的。使用 cmake_policy() 命令将此策略显式设置为 OLD 或 NEW。与大多数政策不同,CMake 版本 |release|当此策略未设置且仅使用“旧”行为时,默认情况下*不*发出警告。请参阅 CMAKE_POLICY_WARNING_CMP0129 变量的文档以控制警告。
备注
策略的“旧”行为是 :manual:根据定义 <cmake-policies(7)> 已弃用,并且可能会在未来版本的 CMake 中删除。