2019-05-24 06:32:40 +00:00
|
|
|
SET(QT_MISSING True)
|
|
|
|
# msvc only; mingw will need different logic
|
|
|
|
IF(MSVC)
|
|
|
|
# look for user-registry pointing to qtcreator
|
2019-07-05 21:00:12 +00:00
|
|
|
GET_FILENAME_COMPONENT(QT_BIN [HKEY_CURRENT_USER\\Software\\Classes\\Applications\\QtProject.QtCreator.pro\\shell\\Open\\Command] PATH)
|
2019-05-24 06:32:40 +00:00
|
|
|
|
|
|
|
# get root path so we can search for 5.3, 5.4, 5.5, etc
|
|
|
|
STRING(REPLACE "/Tools" ";" QT_BIN "${QT_BIN}")
|
|
|
|
LIST(GET QT_BIN 0 QT_BIN)
|
|
|
|
FILE(GLOB QT_VERSIONS "${QT_BIN}/5.*")
|
|
|
|
LIST(SORT QT_VERSIONS)
|
|
|
|
|
|
|
|
# assume the latest version will be last alphabetically
|
|
|
|
LIST(REVERSE QT_VERSIONS)
|
|
|
|
|
|
|
|
LIST(GET QT_VERSIONS 0 QT_VERSION)
|
|
|
|
|
|
|
|
# fix any double slashes which seem to be common
|
|
|
|
STRING(REPLACE "//" "/" QT_VERSION "${QT_VERSION}")
|
|
|
|
|
|
|
|
# do some math trickery to guess folder
|
|
|
|
# - qt uses (e.g.) "msvc2012"
|
|
|
|
# - cmake uses (e.g.) "1800"
|
|
|
|
# - see also https://cmake.org/cmake/help/v3.0/variable/MSVC_VERSION.html
|
2019-07-05 21:00:12 +00:00
|
|
|
# checkcompiler version
|
|
|
|
if(MSVC_VERSION GREATER 1910 AND MSVC_VERSION LESS 1919)
|
|
|
|
set(QT_MSVC 2017)
|
|
|
|
elseif(MSVC_VERSION GREATER 1899 AND MSVC_VERSION LESS 1910)
|
|
|
|
set(QT_MSVC 2015)
|
|
|
|
else()
|
|
|
|
MATH(EXPR QT_MSVC "2000 + (${MSVC_VERSION} - 600) / 100")
|
|
|
|
endif()
|
2019-05-24 06:32:40 +00:00
|
|
|
|
|
|
|
# check for 64-bit os
|
|
|
|
# may need to be removed for older compilers as it wasn't always offered
|
|
|
|
IF(CMAKE_SYSTEM_PROCESSOR MATCHES 64)
|
|
|
|
SET(QT_MSVC "${QT_MSVC}_64")
|
|
|
|
ENDIF()
|
|
|
|
SET(QT_PATH "${QT_VERSION}/msvc${QT_MSVC}")
|
|
|
|
SET(QT_MISSING False)
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
# use Qt_DIR approach so you can find Qt after cmake has been invoked
|
|
|
|
IF(NOT QT_MISSING)
|
|
|
|
MESSAGE("-- Qt found: ${QT_PATH}")
|
|
|
|
SET(Qt5_DIR "${QT_PATH}/lib/cmake/Qt5/")
|
|
|
|
SET(Qt5Test_DIR "${QT_PATH}/lib/cmake/Qt5Test")
|
|
|
|
ENDIF()
|