2012-01-03 159 views
2

我有一個C/C++項目編譯gcc和使用cmake 2.8+。我知道cmake支持一些OPTION(XXX "Description..." ON/OFF)標籤。我希望這些編譯選項的結果以某種方式在-DXXX編譯時間參數傳遞給gcc。如何做到最優雅?CMAKE選項-DXXX編譯器參數

回答

5

如果你只在乎添加-D編譯器選項,那麼你需要的命令是

add_definitions()

你可以包裝在一個IF()塊導通與相關選項():

option(MY_FUNCTIONALITY "Cool functionality" ON) 

if(MY_FUNCTIONALITY) 
    add_definitions(-DENABLE_MY_FUNCTIONALITY) 
endif() 
+0

不應該是'endif(MY_FUNCTIONALITY)'? – 2012-01-03 16:03:01

+0

曾經是必需的語法,但它現在是一個可選的東西。在風格上,我不確定什麼是首選。 – alanxz 2012-01-03 16:23:14

+0

將閉合命令留空(類似於答案)當然是現代CMake中的首選樣式。乾和所有這一切。 – Angew 2015-01-30 14:25:12