CheckLanguage¶
检查一种语言是否可以通过 enable_language()
或 project()
命令启用
- check_language¶
check_language(<lang>)
尝试在一个测试项目中启用语言
<lang>
,并将结果记录在缓存中CMAKE_<LANG>_COMPILER
如果该语言可以启用,则此变量设置为找到的编译器。如果该语言无法启用,则此变量设置为
NOTFOUND
。如果此变量已设置(显式设置或通过之前的调用缓存),则跳过检查。
CMAKE_<LANG>_HOST_COMPILER
当
<lang>
是CUDA
或HIP
时,将设置此变量。如果检查检测到编译所需的显式主机编译器,则此变量将设置为该编译器。如果检查检测到不需要显式主机编译器,则将清除此变量。
如果此变量已设置,则仅当
CMAKE_<LANG>_COMPILER
也设置时,其值才会被保留。否则,检查将运行并使用新结果覆盖CMAKE_<LANG>_HOST_COMPILER
。请注意,CMAKE_<LANG>_HOST_COMPILER
文档指出,在未同时将CMAKE_<LANG>_COMPILER
设置为 NVCC 编译器的情况下,不应设置它。CMAKE_<LANG>_PLATFORM
当
<lang>
是HIP
时,此变量设置为检测到的 GPU 平台。如果该变量已设置,则始终保留其值。只有兼容的值才会被考虑用于
CMAKE_<LANG>_COMPILER
。
例如
check_language(Fortran)
if(CMAKE_Fortran_COMPILER)
enable_language(Fortran)
else()
message(STATUS "No Fortran support")
endif()