enable_language

啟用語言 (CXX/C/OBJC/OBJCXX/Fortran/等)

enable_language(<lang>... [OPTIONAL])

在 CMake 中啟用對指定語言的支援。這與 project() 命令相同,但不建立 project() 命令建立的額外變數。

支援的語言為 CCXX (即 C++)、CSharp (即 C#)、CUDAOBJC (即 Objective-C)、OBJCXX (即 Objective-C++)、FortranHIPISPCSwiftASMASM_NASMASM_MARMASMASM_MASMASM-ATT

在 3.8 版本中新增: 新增了 CSharpCUDA 支援。

在 3.15 版本中新增: 新增了 Swift 支援。

在 3.16 版本中新增: 新增了 OBJCOBJCXX 支援。

在 3.18 版本中新增: 新增了 ISPC 支援。

在 3.21 版本中新增: 新增了 HIP 支援。

在 3.26 版本中新增: 新增了 ASM_MARMASM 支援。

若要啟用 ASM,請將其列在最後,以便 CMake 可以檢查其他語言(如 C)的編譯器是否也適用於組譯。

以下限制適用於 enable_language() 的呼叫位置:

  • 它必須在檔案範圍內呼叫,而不能在函式呼叫中呼叫。

  • 它必須在首次呼叫 project() 之前呼叫。請參閱政策 CMP0165

  • 它必須在所有直接使用指定語言來編譯原始碼或透過連結相依性間接使用指定語言的目標共有的最高目錄中呼叫。最簡單的方法是在專案的頂層目錄中啟用所有需要的語言。

OPTIONAL 關鍵字是未來實作的佔位符,目前不起作用。您可以使用 CheckLanguage 模組來驗證支援,然後再啟用。