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