2016-03-25 14 views
3

Bir Qt projesi oluşturmak için CMake kullanıyorum ve yeni Qt özelliklerinden bazılarını kullanıyor ve düzgün şekilde oluşturmak için en az 5.3 sürümü gerekiyor. Projeyi oluşturmaya çalışan insanlara iyi davranmak isterim ve CMake'de başarısız bir şekilde, CMake sürümünün bazı ezoterik yapı hatalarıyla değil, yeterince güncel olmadığını söyleyerek mantıklı bir hatayla yapılandırın.CMake ile desteklenen Qt sürümü için test

En azından sürüm 5.0'ı find_package sözdizimini kullanarak (yani find_package(Qt5Widgets REQURIED)) alacağımı biliyorum, ancak doğru küçük sürümü kullandığımı emin olmak o kadar da açık değil. Bunu yapmanın en kolay yolu nedir?

cevap

5

gibi çok düşük olup olmadığını sen sürümünü kontrol ve Yapılandırma adımından başarısız olabilir Bu biraz eski bir yazı, ancak Qt5Widgets_VERSION kullanarak sürümü kontrol edebilirsiniz. İşte bazı örnek CMake kodu:

find_package(Qt5Widgets REQUIRED) 

if (Qt5Widgets_FOUND) 
    if (Qt5Widgets_VERSION VERSION_LESS 5.7.0) 
     message(FATAL_ERROR "Minimum supported Qt5 version is 5.70!") 
    endif() 
else() 
    message(SEND_ERROR "The Qt5Widgets library could not be found!") 
endif(Qt5Widgets_FOUND) 
0

Qt tarafından sağlanan cmake paketleri ile bunu yapmak için doğrudan bir yol yok, ancak Qmak sürümünü qmake kullanarak sorgulamak için yeterince kolaydır.

set(QTDIR $ENV{QTDIR} CACHE STRING "Qt install path") 
list(APPEND CMAKE_PREFIX_PATH ${QTDIR}) 

yüklemek Eğer Qt bulmak için cmake dosyalarında zaten aşağıdakine benzer bir şey var varsayarsak ben biliyorum

set(QT_MINIMUM_VERSION 5.3.0) 

# Test for supported Qt version 
find_program(QMAKE_EXECUTABLE NAMES qmake HINTS ${QTDIR} ENV QTDIR PATH_SUFFIXES bin) 
execute_process(COMMAND ${QMAKE_EXECUTABLE} -query QT_VERSION OUTPUT_VARIABLE QT_VERSION) 
if(QT_VERSION LESS QT_MINIMUM_VERSION) 
    MESSAGE(FATAL_ERROR "Minimum supported Qt version: ${QT_MINIMUM_VERSION}. 
    Installed version: ${QT_VERSION}") 
endif()