enable_language

启用语言(CXX/C/OBJC/OBJCXX/Fortran 等)

enable_language(<lang>... [OPTIONAL])

在 CMake 中启用对指定语言的支持。此操作与 project() 命令相同,但不会创建由 project() 命令创建的任何额外变量。

支持的语言是 CCXX (即 C++)、CSharp (即 C#)、CUDAOBJC(即 Objective-C)、OBJCXX(即 Objective-C++)、FortranHIPISPCSwiftASMASM_NASMASM_MARMASMASM_MASMASM-ATT

在版本 3.8 中添加: 添加了 CSharpCUDA 支持。

在版本 3.15 中添加: 添加了 Swift 支持。

在版本 3.16 中添加: 添加了 OBJCOBJCXX 支持。

在版本 3.18 中添加: 添加了 ISPC 支持。

在版本 3.21 中添加: 添加了 HIP 支持。

在版本 3.26 中添加: 添加了 ASM_MARMASM 支持。

如果启用 ASM,将其列在最后,以便 CMake 检查其他语言(如 C)的编译器是否也适用于汇编。

以下限制适用于 enable_language() 的调用位置

  • 它必须在文件作用域中调用,不能在函数调用中调用。

  • 在首次调用 project() 之前请勿调用它。参见政策 CMP0165

  • 必须在所有使用指定语言的目标(直接用于编译源或间接通过链接依赖)的最高目录中调用这个命令。最简单的方法是在项目的顶级目录中启用所有需要的语言。

OPTIONAL 关键字是未来实现的占位符,当前无效。相反,可以使用 CheckLanguage 模块在启用之前验证支持。