COMPILE_OPTIONS

傳遞給編譯器的選項列表。

此屬性持有針對其目標所指定選項的分號分隔列表。使用target_compile_options()命令來附加更多選項。這些選項會加在CMAKE_<LANG>_FLAGSCMAKE_<LANG>_FLAGS_<CONFIG>變數中的旗標之後,但在由INTERFACE_COMPILE_OPTIONS屬性從相依性傳播的選項之前。

此屬性會為目標中的所有語言新增編譯選項。使用COMPILE_LANGUAGE產生器表達式來指定每個語言的編譯選項。

此屬性會在建立目標時,由COMPILE_OPTIONS目錄屬性初始化,並由產生器用來設定編譯器的選項。

COMPILE_OPTIONS的內容可以使用語法為$<...>的「產生器表達式」。請參閱cmake-generator-expressions(7)手冊以取得可用的表達式。請參閱cmake-buildsystem(7)手冊,以了解更多關於定義建置系統屬性的資訊。

選項去重複化

用於目標的最終選項集,是透過累積來自目前目標及其相依性的使用需求中的選項來建構。選項集會進行去重複化,以避免重複。

在 3.12 版本中新增:雖然對於個別選項有利,但去重複化步驟可能會拆散選項群組。例如,-option A -option B 會變成 -option A B。可以使用類似 shell 的引號以及 SHELL: 前綴來指定一組選項。SHELL: 前綴會被捨棄,而選項字串的其餘部分會使用separate_arguments()UNIX_COMMAND 模式進行剖析。例如,"SHELL:-option A" "SHELL:-option B" 會變成 -option A -option B