enable_language¶
启用语言 (CXX/C/OBJC/OBJCXX/Fortran/etc)
enable_language(<lang>... [OPTIONAL])
在 CMake 中启用对指定语言的支持。这与 project()
命令相同,但不创建 project()
命令创建的任何额外变量。
支持的语言包括 C
, CXX
(即 C++), CSharp
(即 C#), CUDA
, OBJC
(即 Objective-C), OBJCXX
(即 Objective-C++), Fortran
, HIP
, ISPC
, Swift
, ASM
, ASM_NASM
, ASM_MARMASM
, ASM_MASM
, 和 ASM-ATT
。
在 3.8 版本中添加: 添加了
CSharp
和CUDA
支持。在 3.15 版本中添加: 添加了
Swift
支持。在 3.16 版本中添加: 添加了
OBJC
和OBJCXX
支持。在 3.18 版本中添加: 添加了
ISPC
支持。在 3.21 版本中添加: 添加了
HIP
支持。在 3.26 版本中添加: 添加了
ASM_MARMASM
支持。
如果启用 ASM
,请将其放在最后,以便 CMake 可以检查其他语言(如 C
)的编译器是否也适用于汇编。
以下限制适用于可以调用 enable_language()
的位置
它必须在文件作用域中调用,而不是在函数调用中。
它必须在所有目标共有的最高目录中调用,这些目标直接使用指定的语言来编译源文件,或通过链接依赖项间接使用。最简单的方法是在项目的顶层目录中启用所有需要的语言。
OPTIONAL
关键字是未来实现的占位符,目前不起作用。相反,您可以使用 CheckLanguage
模块来验证支持,然后再启用。