CMP0119¶
在版本 3.20 中新增。
LANGUAGE
原始檔屬性會明確地依照指定的語言編譯。
LANGUAGE
原始檔屬性的文件說明其意為該原始檔是以指定的語言撰寫。在 CMake 3.19 及更早的版本中,設定此屬性會導致 CMake 使用指定語言的編譯器來編譯該原始檔。但是,它僅會傳遞明確的標誌,告知編譯器將原始碼視為 CXX
語言,這僅適用於 MSVC-like、XL 和 Embarcadero 編譯器。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 中移除。