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() 的调用位置

  • 必须在文件作用域内调用,不能在 function() 调用中,也不能在 block() 内部调用。

  • 必须在第一次调用 project() 之前调用。 请参阅策略 CMP0165

  • 必须在所有直接用于编译源代码或通过链接依赖关系间接使用指定语言的目标的公共最高目录中调用。 在项目的顶级目录中启用所有需要的语言是最简单的方法。

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