在CMake中获取wxWidgets的版本

时间:2011-05-03 16:57:30

标签: cmake wxwidgets

我正在尝试确定CMake发现的wxWidgets版本是否> = 2.9。我试过这个:

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,所以这应该失败)。

if(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 

(即所有变量都是空的)

有没有人知道通过CMake检查wxWidgets版本的正确方法?

谢谢,

大卫

3 个答案:

答案 0 :(得分:1)

有人提出了一个名为wxArt2d的项目,它有更好的wxWidgets cmake。不幸的是,这些事情不容易/更好地维护:(

答案 1 :(得分:0)

在我的Ubuntu 18.04.2 LTS上 CMake命令:

find_package(wxWidgets REQUIRED)

通话宏:

/usr/share/cmake-3.10/Modules/FindwxWidgets.cmake

设置以下变量:

wxWidgets_VERSION_STRING   # 3.0.4
wxWidgets_VERSION_MAJOR    # 3
wxWidgets_VERSION_MINOR    # 0
wxWidgets_VERSION_PATCH    # 4

因此,以下代码检查版本:

find_package(wxWidgets REQUIRED)
include(${wxWidgets_USE_FILE})

if (wxWidgets_VERSION_STRING LESS 2.9)
    message("Version < 2.9")
endif()

# Or
if (wxWidgets_VERSION_STRING GREATER_EQUAL 2.9)
    message("Version >= 2.9")
endif()

答案 2 :(得分:-1)

打开终端并写

wx-config --version