FindQt.cmake raw
1 # Copyright (c) 2024-present The Bitcoin Core developers
2 # Distributed under the MIT software license, see the accompanying
3 # file COPYING or https://opensource.org/license/mit/.
4
5 #[=======================================================================[
6 FindQt
7 ------
8
9 Finds the Qt headers and libraries.
10
11 This is a wrapper around find_package() command that:
12 - facilitates searching in various build environments
13 - prints a standard log message
14
15 #]=======================================================================]
16
17 set(_qt_homebrew_prefix)
18 if(CMAKE_HOST_APPLE)
19 find_program(HOMEBREW_EXECUTABLE brew)
20 if(HOMEBREW_EXECUTABLE)
21 execute_process(
22 COMMAND ${HOMEBREW_EXECUTABLE} --prefix qt@${Qt_FIND_VERSION_MAJOR}
23 OUTPUT_VARIABLE _qt_homebrew_prefix
24 ERROR_QUIET
25 OUTPUT_STRIP_TRAILING_WHITESPACE
26 )
27 endif()
28 endif()
29
30 find_package(Qt${Qt_FIND_VERSION_MAJOR} ${Qt_FIND_VERSION}
31 COMPONENTS ${Qt_FIND_COMPONENTS}
32 HINTS ${_qt_homebrew_prefix}
33 PATH_SUFFIXES Qt${Qt_FIND_VERSION_MAJOR} # Required on OpenBSD systems.
34 )
35 unset(_qt_homebrew_prefix)
36
37 include(FindPackageHandleStandardArgs)
38 find_package_handle_standard_args(Qt
39 REQUIRED_VARS Qt${Qt_FIND_VERSION_MAJOR}_DIR Qt${Qt_FIND_VERSION_MAJOR}_FOUND
40 VERSION_VAR Qt${Qt_FIND_VERSION_MAJOR}_VERSION
41 )
42
43 foreach(component IN LISTS Qt_FIND_COMPONENTS ITEMS "")
44 mark_as_advanced(Qt${Qt_FIND_VERSION_MAJOR}${component}_DIR)
45 endforeach()
46