set(Qt5_ROOT "" CACHE PATH "Qt5 install prefix") set(_qt5_components ${Qt5_FIND_COMPONENTS}) set(_qt5_prefix_candidates) foreach (_qt5_prefix IN ITEMS "${Qt5_ROOT}" "$ENV{Qt5_ROOT}" "$ENV{QTDIR}" "${CMAKE_CURRENT_LIST_DIR}/../../Qt/Qt5.14.2/5.14.2/msvc2017_64" "C:/Qt/Qt5.14.2/5.14.2/msvc2017_64" "D:/Qt/Qt5.14.2/5.14.2/msvc2017_64" "C:/Qt/5.14.2/msvc2017_64" "D:/Qt/5.14.2/msvc2017_64" ) if (NOT "${_qt5_prefix}" STREQUAL "") list(APPEND _qt5_prefix_candidates "${_qt5_prefix}") endif () endforeach () if (Qt5_DIR AND NOT EXISTS "${Qt5_DIR}/Qt5Config.cmake") message(STATUS "Qt5_DIR ignored: ${Qt5_DIR}") unset(Qt5_DIR CACHE) unset(Qt5_DIR) endif () if (NOT Qt5_DIR) unset(_qt5_config_dir CACHE) find_path(_qt5_config_dir NAMES Qt5Config.cmake PATHS ${_qt5_prefix_candidates} PATH_SUFFIXES lib/cmake/Qt5 lib64/cmake/Qt5 cmake/Qt5 NO_DEFAULT_PATH ) if (NOT _qt5_config_dir) find_path(_qt5_config_dir NAMES Qt5Config.cmake PATH_SUFFIXES lib/cmake/Qt5 lib64/cmake/Qt5 cmake/Qt5 ) endif () if (_qt5_config_dir) set(Qt5_DIR "${_qt5_config_dir}" CACHE PATH "Qt5 cmake config dir" FORCE) endif () endif () if (Qt5_DIR) get_filename_component(Qt5_BaseDIR "${Qt5_DIR}/../../.." ABSOLUTE) set(Qt5_BaseDIR "${Qt5_BaseDIR}" CACHE PATH "Qt5 base dir" FORCE) set(Qt5_Plugin_DIR "${Qt5_BaseDIR}/plugins" CACHE PATH "Qt5 plugin dir" FORCE) endif () find_package(Qt5 CONFIG QUIET COMPONENTS ${_qt5_components}) function(_qt5_print_target_property target property) if (NOT TARGET ${target}) return() endif () get_target_property(_qt5_value ${target} ${property}) if (_qt5_value) message(STATUS "${target} ${property}=${_qt5_value}") endif () endfunction() function(_qt5_print_status) message(STATUS "Qt5_FOUND=${Qt5_FOUND}") message(STATUS "Qt5_VERSION=${Qt5_VERSION}") message(STATUS "Qt5_DIR=${Qt5_DIR}") message(STATUS "Qt5_BaseDIR=${Qt5_BaseDIR}") message(STATUS "Qt5_Plugin_DIR=${Qt5_Plugin_DIR}") message(STATUS "Qt5 requested components=${_qt5_components}") foreach (_qt5_component ${_qt5_components}) message(STATUS "Qt5${_qt5_component}_FOUND=${Qt5${_qt5_component}_FOUND}") if (TARGET Qt5::${_qt5_component}) message(STATUS "Qt5 target found: Qt5::${_qt5_component}") _qt5_print_target_property(Qt5::${_qt5_component} IMPORTED_LOCATION_DEBUG) _qt5_print_target_property(Qt5::${_qt5_component} IMPORTED_LOCATION_RELEASE) _qt5_print_target_property(Qt5::${_qt5_component} IMPORTED_IMPLIB_DEBUG) _qt5_print_target_property(Qt5::${_qt5_component} IMPORTED_IMPLIB_RELEASE) _qt5_print_target_property(Qt5::${_qt5_component} INTERFACE_INCLUDE_DIRECTORIES) else () message(STATUS "Qt5 target missing: Qt5::${_qt5_component}") endif () endforeach () endfunction() function(_qt5_fail message_text) if (Qt5_FIND_REQUIRED) message(FATAL_ERROR "${message_text}") else () message(STATUS "${message_text}") endif () endfunction() #_qt5_print_status() if (NOT Qt5_FOUND) set(_qt5_missing_components) foreach (_qt5_component ${_qt5_components}) if (NOT Qt5${_qt5_component}_FOUND) list(APPEND _qt5_missing_components ${_qt5_component}) endif () endforeach () if (_qt5_missing_components) _qt5_fail("Could NOT find Qt5 components: ${_qt5_missing_components}, Qt5_DIR=${Qt5_DIR}") return() endif () _qt5_fail("Could NOT find Qt5, Qt5_DIR=${Qt5_DIR}") return() endif ()