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