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