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()