Получить версию wxWidgets в CMake - PullRequest
0 голосов
/ 03 мая 2011

Я пытаюсь определить, найдена ли 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 пусто. Фактически, весь вывод: </p>

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

(т. Е. Все переменные пусты)

Кто-нибудь знает правильный способ проверки версии wxWidgets через CMake?

Спасибо

David

Ответы [ 3 ]

1 голос
/ 16 ноября 2011

Кто-то предложил проект с именем wxArt2d, который имеет немного лучший wxWidgets cmake. К сожалению, эти вещи не легче / лучше поддерживать: (

0 голосов
/ 03 июня 2019

На моем 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()
0 голосов
/ 26 марта 2018

Откройте терминал и напишите

wx-config --version
...