CMP0119¶
在版本 3.20 中新增。
LANGUAGE
原始檔屬性明確地編譯為指定的語言。
LANGUAGE
原始檔屬性其文件說明此原始檔是以指定的語言撰寫。在 CMake 3.19 及更早版本中,設定此屬性會導致 CMake 使用指定語言的編譯器來編譯原始檔。然而,它只傳遞一個明確的標誌,告知編譯器將原始碼視為指定的語言,適用於類似 MSVC、XL 和 Embarcadero 編譯器的 CXX
語言。CMake 3.20 及以上版本也傾向於明確告知編譯器使用指定的語言,方法是使用諸如 -x c
之類的標誌,在所有已知此類標誌的編譯器上。
此策略為尚未更新以預期此行為的專案提供相容性。例如,某些專案在組合語言 .S
原始檔上將 LANGUAGE
屬性設定為 C
,以便使用 C 編譯器來編譯它們。此類專案應更新為使用 enable_language(ASM)
,CMake 通常會在相關平台上選擇 C 編譯器作為組譯器。
此策略的 OLD
行為是解讀 LANGUAGE <LANG>
屬性,使用其未記載的含義「使用 <LANG>
編譯器」。此策略的 NEW
行為是解讀 LANGUAGE <LANG>
屬性,使用其已記載的含義「編譯為 <LANG>
原始碼」。
此策略在 CMake 版本 3.20 中引入。可以透過 cmake_policy()
或 cmake_minimum_required()
設定。如果未設定,CMake *不會* 警告,並使用 OLD
行為。
注意
策略的 OLD
行為依定義已棄用
,並可能會在未來的 CMake 版本中移除。