我正在尝试确定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版本的正确方法?
谢谢,
大卫
答案 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