CMP0119¶
添加到 3.20 版本中。
LANGUAGE
源文件属性显式编译为指定语言。
LANGUAGE
源文件属性已记录,表示源文件使用指定语言编写。在 CMake 3.19 及更低版本中,设置此属性会使 CMake 使用指定语言的编译器编译源文件。但是,它仅传递显式标志来告诉编译器将源视为 MSVC 类似语言、XL 和 Embarcadero 编译器的指定语言,用于 CXX
语言。CMake 3.20 及更高版本更愿意明确告诉编译器使用指定语言,使用一个标志,如 -x c
,用于所有已知此标志的编译器。
此策略为尚未更新为预期此行为的项目提供兼容性。例如,某些项目正在将 LANGUAGE
属性设置为 C
,针对汇编语言 .S
源文件,以便使用 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 中移除。