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 模組來驗證支援,然後再啟用。