98 lines
3.7 KiB
CMake
98 lines
3.7 KiB
CMake
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 () |