COMPILE_OPTIONS¶
傳遞給編譯器的選項列表。
此屬性持有針對其目標所指定選項的分號分隔列表。使用target_compile_options()
命令來附加更多選項。這些選項會加在CMAKE_<LANG>_FLAGS
和CMAKE_<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
。