CMake: Use HINTS option instead of modifying CMAKE_PREFIX_PATH for Qt

This commit is contained in:
Yuri Kunde Schlesner 2015-08-28 16:48:26 -03:00
parent 078969bdd0
commit 2eec2c156b

View file

@ -189,22 +189,29 @@ if (ENABLE_QT)
if (DEFINED QT_VER) if (DEFINED QT_VER)
download_bundled_external("qt/" ${QT_VER} QT_PREFIX) download_bundled_external("qt/" ${QT_VER} QT_PREFIX)
list(APPEND CMAKE_PREFIX_PATH "${QT_PREFIX}")
endif() endif()
elseif (DEFINED ENV{QTDIR}) elseif (DEFINED ENV{QTDIR})
# Set CMAKE_PREFIX_PATH if QTDIR is defined in the environment This allows CMake to # Set CMAKE_PREFIX_PATH if QTDIR is defined in the environment This allows CMake to
# automatically find the Qt packages on Windows # automatically find the Qt packages on Windows
list(APPEND CMAKE_PREFIX_PATH "$ENV{QTDIR}") set(QT_PREFIX "$ENV{QTDIR}")
endif()
# Passing an empty HINTS seems to cause default system paths to get ignored in CMake 2.8 so make
# sure to not pass anything if we don't have one
if (DEFINED QT_PREFIX)
set(QT_PREFIX_HINT HINTS "${QT_PREFIX}")
else()
set(QT_PREFIX_HINT)
endif() endif()
if (NOT CITRA_FORCE_QT4) if (NOT CITRA_FORCE_QT4)
find_package(Qt5 COMPONENTS Widgets OpenGL) find_package(Qt5 COMPONENTS Widgets OpenGL ${QT_PREFIX_HINT})
set(CITRA_QT_LIBS Qt5::Widgets Qt5::OpenGL) set(CITRA_QT_LIBS Qt5::Widgets Qt5::OpenGL)
endif() endif()
if (CITRA_FORCE_QT4 OR NOT Qt5_FOUND) if (CITRA_FORCE_QT4 OR NOT Qt5_FOUND)
# Try to fallback to Qt4 # Try to fallback to Qt4
find_package(Qt4 REQUIRED COMPONENTS QtGui QtOpenGL) find_package(Qt4 REQUIRED COMPONENTS QtGui QtOpenGL ${QT_PREFIX_HINT})
set(CITRA_QT_LIBS Qt4::QtGui Qt4::QtOpenGL) set(CITRA_QT_LIBS Qt4::QtGui Qt4::QtOpenGL)
endif() endif()
endif() endif()