FindQt: fix setting DESIRED_QT_VERSION if "find_package(Qt VVV)" was called

In case the given version was not only "3" or "4", but something like "4.8"
DESIRED_QT_VERSION was set to an unsupported value. While at it also check
that the version passed in is really in the range of 3.x and 4.x. Also
suggest switching to the more specific find modules if possible.
This commit is contained in:
Rolf Eike Beer 2015-01-16 20:50:15 +01:00
parent 0fcdc57b7b
commit 49d05a4713
1 changed files with 5 additions and 1 deletions

View File

@ -79,7 +79,11 @@ endif()
set(GLOB_TEMP_VAR)
if (Qt_FIND_VERSION)
set(DESIRED_QT_VERSION "${Qt_FIND_VERSION}")
if (Qt_FIND_VERSION MATCHES "^([34])(\\.[0-9]+.*)?$")
set(DESIRED_QT_VERSION ${CMAKE_MATCH_1})
else ()
message(FATAL_ERROR "FindQt was called with invalid version '${Qt_FIND_VERSION}'. Only Qt major versions 3 or 4 are supported. If you do not need to support both Qt3 and Qt4 in your source consider calling find_package(Qt3) or find_package(Qt4) instead of find_package(Qt) instead.")
endif ()
endif ()
# now find qmake