CheckLanguage

此模块提供了一个命令,用于检查是否可以使用 enable_language()project() 命令启用某种语言。

在 CMake 项目中加载此模块,使用

include(CheckLanguage)

当项目不总是需要特定语言但可能需要为某些部分启用它时,此模块非常有用。

命令

此模块提供以下命令

check_language

检查是否可以在 CMake 项目中启用某种语言

check_language(<lang>)

此命令尝试在测试项目中启用语言 <lang>,并将结果记录在以下缓存变量中

CMAKE_<LANG>_COMPILER

如果可以启用该语言,则此变量将设置为找到的编译器。如果无法启用该语言,则此变量将设置为 NOTFOUND

如果此变量已设置,无论是显式设置还是由之前的调用缓存,都将跳过检查。

CMAKE_<LANG>_HOST_COMPILER

<lang>CUDAHIP 时,此变量将设置。

如果检查检测到编译所需的显式主机编译器,则此变量将设置为该编译器。如果检查检测到不需要显式主机编译器,则此变量将清除。

如果此变量已设置,则只有当 CMAKE_<LANG>_COMPILER 也设置时,其值才会被保留。否则,检查将运行并用新结果覆盖 CMAKE_<LANG>_HOST_COMPILER。请注意,CMAKE_<LANG>_HOST_COMPILER 的文档说明,它不应在未同时将 CMAKE_<LANG>_COMPILER 设置为 NVCC 编译器的情况下设置。

CMAKE_<LANG>_PLATFORM

<lang>HIP 时,此变量将设置为检测到的 GPU 平台。

如果此变量已设置,则其值始终保留。对于 CMAKE_<LANG>_COMPILER,仅考虑兼容值。

示例

以下示例检查 Fortran 语言的可用性,如果可能则启用它

include(CheckLanguage)
check_language(Fortran)
if(CMAKE_Fortran_COMPILER)
  enable_language(Fortran)
else()
  message(STATUS "No Fortran support")
endif()