cmake - 在 CMake 中获取 wxWidgets 的版本

标签 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 版本的正确方法吗?

谢谢

大卫

最佳答案

在我的 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()

关于cmake - 在 CMake 中获取 wxWidgets 的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5872950/

相关文章:

iphone - 如何设置 CMake 来构建适用于 iPhone 的应用程序

opengl - 使用 CMake 将 stb_image 包含到 OpenGL 项目中

c++ - wxwidgets连接到成员类中的函数

c++ - wxwidgets//g++编译错误: no matching function for call to 'operator new(..'

python - wxWindows/wxPython 中没有标题栏的窗口

c++ - 如何使wxPython、DC背景透明?

c - 正确设置cmakelist来编译项目

c++ - 如何将 OpenMP 和 MPI 导入大型 CLion CMake 项目?

c++ - 未定义的引用链接 yaml-cpp 程序与 mingw-w64 + cmake

c++ - 如何获取 wxWidgets 面板(列表框)的引用?