CMP0194

在 4.1 版本中新增。

MSVC 不是 ASM 语言的汇编器。

在启用 ASM 语言时,CMake 会将 C 编译器驱动程序视为汇编器候选。CMake 4.0 及更早版本意外地选择 MSVC 的 cl 编译器作为 CMAKE_ASM_COMPILER,允许 ASM 语言在 Windows 上启用,即使 cl 不支持汇编器源文件。CMake 4.1 及更高版本倾向于拒绝 cl 作为汇编器候选,但一些现有项目会在 Windows 上无条件地启用 ASM,即使它们不添加任何汇编器源文件。此策略为这些项目提供了兼容性,允许它们像以前一样进行配置。

此策略的 OLD 行为是即使 cl 是唯一可用的候选,也能成功启用 ASM。此策略的 NEW 行为是不将 cl 视为 ASM 语言的候选汇编器。

此策略在 CMake 版本 4.1 中引入。它可以由 cmake_policy()cmake_minimum_required() 设置。如果未设置,CMake 会发出警告并使用 OLD 行为。

注意

策略的 OLD 行为 根据定义已被弃用,并可能在未来的 CMake 版本中被移除。