FindQRencode.cmake raw

   1  # Copyright (c) 2024-present The Limenka developers
   2  # Distributed under the MIT software license, see the accompanying
   3  # file COPYING or https://opensource.org/license/mit/.
   4  
   5  #[=======================================================================[
   6  FindQRencode
   7  ------------
   8  
   9  Finds the QRencode header and library.
  10  
  11  This is a wrapper around find_package()/pkg_check_modules() commands that:
  12   - facilitates searching in various build environments
  13   - prints a standard log message
  14  
  15  #]=======================================================================]
  16  
  17  find_package(PkgConfig QUIET)
  18  if(PKG_CONFIG_FOUND)
  19    pkg_check_modules(PC_QRencode QUIET libqrencode)
  20  endif()
  21  
  22  find_path(QRencode_INCLUDE_DIR
  23    NAMES qrencode.h
  24    HINTS ${PC_QRencode_INCLUDE_DIRS}
  25  )
  26  
  27  find_library(QRencode_LIBRARY_RELEASE
  28    NAMES qrencode
  29    HINTS ${PC_QRencode_LIBRARY_DIRS}
  30  )
  31  find_library(QRencode_LIBRARY_DEBUG
  32    NAMES qrencoded qrencode
  33    HINTS ${PC_QRencode_LIBRARY_DIRS}
  34  )
  35  include(SelectLibraryConfigurations)
  36  select_library_configurations(QRencode)
  37  
  38  include(FindPackageHandleStandardArgs)
  39  find_package_handle_standard_args(QRencode
  40    REQUIRED_VARS QRencode_LIBRARY QRencode_INCLUDE_DIR
  41    VERSION_VAR PC_QRencode_VERSION
  42  )
  43  
  44  if(QRencode_FOUND)
  45    if(NOT TARGET QRencode::QRencode)
  46      add_library(QRencode::QRencode UNKNOWN IMPORTED)
  47    endif()
  48    if(QRencode_LIBRARY_RELEASE)
  49      set_property(TARGET QRencode::QRencode APPEND PROPERTY
  50        IMPORTED_CONFIGURATIONS RELEASE
  51      )
  52      set_target_properties(QRencode::QRencode PROPERTIES
  53        IMPORTED_LOCATION_RELEASE "${QRencode_LIBRARY_RELEASE}"
  54      )
  55    endif()
  56    if(QRencode_LIBRARY_DEBUG)
  57      set_property(TARGET QRencode::QRencode APPEND PROPERTY
  58        IMPORTED_CONFIGURATIONS DEBUG
  59      )
  60      set_target_properties(QRencode::QRencode PROPERTIES
  61        IMPORTED_LOCATION_DEBUG "${QRencode_LIBRARY_DEBUG}"
  62      )
  63    endif()
  64    set_target_properties(QRencode::QRencode PROPERTIES
  65      INTERFACE_INCLUDE_DIRECTORIES "${QRencode_INCLUDE_DIR}"
  66    )
  67  endif()
  68  
  69  mark_as_advanced(
  70    QRencode_INCLUDE_DIR
  71  )
  72