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 编译器在启用语言 <LANG> 之后通过 project()enable_language() 命令后,在 CMAKE_<LANG>_COMPILER_ID 变量中报告哪个编译器 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 行为 deprecated by definition 且可能在 CMake 的未来版本中移除。