【问题标题】:Get version of wxWidgets in CMake在 CMake 中获取 wxWidgets 的版本
【发布时间】:2011-08-17 21:27:33
【问题描述】:

我正在尝试确定 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

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

(即所有变量都是空的)

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

谢谢,

大卫

【问题讨论】:

  • 检查 FindWxWidgets.cmake 模块。我不知道您使用的是哪一个,但例如,在this 中,wxversion 仅针对 Windows 定义(我猜不是您喜欢的方式),而在this 中,没有定义一个版本。
  • 我认为为 wx 提供的查找脚本并没有得到很好的维护。所以也许你必须为你的情况修改一个。

标签: cmake wxwidgets


【解决方案1】:

在我的 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】:

    打开终端并写入

    wx-config --version
    

    【讨论】:

    • 这对在 CMake 中获取版本有何帮助?
    【解决方案3】:

    有人建议了一个名为 wxArt2d 的项目,它具有更好的 wxWidgets cmake。不幸的是,这些东西不容易/更好地维护:(

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-18
      • 2013-11-08
      • 1970-01-01
      • 2023-03-02
      • 2018-06-30
      • 2015-08-31
      • 2021-01-16
      • 1970-01-01
      相关资源
      最近更新 更多