2011-05-03 133 views
0

我試圖確定CMake發現的wxWidgets的版本是否> = 2.9。我試過這個:在CMake中獲取wxWidgets的版本

find_package(wxWidgets 2.9 COMPONENTS core base REQUIRED) 
if(wxWidgets_FOUND) 
    message("wxWidgets found successfully.") 
    include(${wxWidgets_USE_FILE}) 
else() 
    message(FATAL_ERROR "wxWidgets was not found!") 
endif() 

if(wxWidgets_VERSION LESS 2.9) 
    message(FATAL_ERROR "wxWidgets is not a high enough version!") 
else() 
    message("wxWidgets Version ${wxWidgets_VERSION}") 
    message("wxWidgets Major version ${wxMAJOR_VERSION}") 
    message("release number ${wxRELEASE_NUMBER}") 
    message("check version ${wxCHECK_VERSION}") 
    message("wxWidgets version ${WX_WIDGETS_VERSION}") 
    message("wxWidgets major version ${WX_MAJOR_VERSION}") 
    message("wxWidgets version string ${WX_VERSION_STRING}") 
endif() 

(我的系統有wx2.8,所以這應該會失敗)。

如果(wxWidgets_FOUND)返回TRUE,那麼這麼好。但是,if(wxWidgets_VERSION LESS 2.9)失敗,但這不是因爲wxWidgets_VERSION是< 2.9。這是因爲wxWidgets_VERSION是空的。事實上,整個輸出爲:

wxWidgets Version 
wxWidgets Major version 
release number 
check version 
wxWidgets version 
wxWidgets major version 
wxWidgets version string 

(即所有的變量都是空的)

有誰知道正確的檢查方法,通過C進行wxWidgets版本?

感謝,

大衛

+0

檢查你FindWxWidgets.cmake模塊。我不知道你正在使用哪一個,但是,例如,在[this](http:// wiki .wxwidgets.org/FindWxWin.Cmake)wxversion僅針對Windows(並且我猜不是你喜歡它的方式)和[this](http://code.google.com/p/vtp/source/browse) /trunk/CMakeModules/FindwxWidgets.cmake?r=7130)一個版本沒有定義 – beduin 2011-05-04 04:41:17

+0

我認爲wx提供的查找腳本並沒有得到很好的維護,所以也許你需要爲你的情況修改一個腳本。 – LiMuBei 2011-09-23 18:24:30

回答

1

有人建議命名wxArt2d項目,有一個好一點的wxWidgets cmake的。不幸的是,這些東西不容易/更好地維護:(