CMP0119¶
在版本 3.20 中添加。
LANGUAGE
源文件属性显式地编译为指定的语言。
LANGUAGE
源文件属性的文档含义是源文件以指定的语言编写。在 CMake 3.19 及更低版本中,设置此属性会导致 CMake 使用指定语言的编译器编译源文件。然而,对于 CXX
语言的 MSVC-like、XL 和 Embarcadero 编译器,它仅传递一个显式标志来告知编译器将源文件视为指定的语言。CMake 3.20 及更高版本更倾向于也显式地告知编译器使用指定的语言,对于所有已知此类标志的编译器,都使用类似 -x c
的标志。
此策略为尚未更新以预期此行为的项目提供了兼容性。例如,一些项目在汇编语言 .S
源文件上设置 LANGUAGE
属性为 C
,以便使用 C 编译器编译它们。此类项目应更新为使用 enable_language(ASM)
,对于这种情况,CMake 通常会在相关的平台上选择 C 编译器作为汇编器。
此策略的 OLD
行为是使用其未文档化的含义来解释 LANGUAGE <LANG>
属性,即“使用 <LANG>
编译器”。此策略的 NEW
行为是使用其文档化的含义来解释 LANGUAGE <LANG>
属性,即“编译为 <LANG>
源文件”。
此策略在 CMake 版本 3.20 中引入。它可以通过 cmake_policy()
或 cmake_minimum_required()
设置。如果未设置,CMake 将不会发出警告,并使用 OLD
行为。
注意
策略的 OLD
行为按照定义 已弃用
,并可能在未来的 CMake 版本中移除。