2013-05-21 22 views
15

我知道,在我的CMake可以檢查編譯器的版本是這樣CMake的表達「大於或等於」聲明

if(MSVC_VERSION LESS 1700) 
... // MSVC is lower than MSVC2012 

但我怎麼表達這個在CMake的語法?

if(MSVC_VERSION GREATER_OR_EQUAL_TO 1700) 
... // MSVC greater or equal to MSVC2012 

回答

38

更新的CMake 3.7及更高版本:

CMake的3.7 introduced a couple of new comparisonsif,其中GREATER_EQUAL

if(MSVC_VERSION GREATER_EQUAL 1700) 
    [...] 

爲老年人CMake的版本,原來的答覆:

if((MSVC_VERSION GREATER 1700) OR (MSVC_VERSION EQUAL 1700)) 
    [...] 

或者可能更好,因爲它避免了重複的條件:

if(NOT (MSVC_VERSION LESS 1700)) 
    [...] 
+0

好,所以沒有內置的關鍵字進行,這是一個遺憾,但我會用自己的方式。謝謝! –

+5

對。不幸的是,CMake在某些地方很簡約,這是其中之一。 – ComicSansMS