2011-05-03 17 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的。不幸的是,这些东西不容易/更好地维护:(