2016-03-25 12 views
3

CMakeを使用してQtプロジェクトを構築しています。新しいQt機能を使用しており、バージョン5.3以上で適切にビルドする必要があります。私は、プロジェクトを構築しようとする人々にうれしいと思うし、CMakeの設定時に論理的なエラーで失敗して、CMakeのバージョンがいくつかの難解なビルドエラーではなく、最近のものではないと伝えたい。CMakeでサポートされているQtバージョンのテスト

モジュールfind_packageの構文(つまりfind_package(Qt5Widgets REQURIED))を使用するだけでバージョン5.0以上になることはわかっていますが、正しいマイナーバージョンを使用していることを確認する方法はあまり明確ではありません。 これを行う最も簡単な方法は何ですか?

答えて

5

私が知っているような低すぎるかどう

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

をインストールするには、バージョンを確認し、設定手順を失敗する可能性がありますこれはやや古い投稿ですが、Qt5Widgets_VERSIONを使用してバージョンを確認できます。 CMakeコードの例をいくつか示します:

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が提供するcmakeパッケージでこれを行う直接的な方法はありませんが、qmakeを使用してQtバージョンをクエリするのは簡単です。 Qtのを見つけるためにあなたがすでにcmakeのファイルに次のようなものを持っていると仮定すると、それはとても

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() 
関連する問題