Warning, /frameworks/extra-cmake-modules/find-modules/FindPoppler.cmake is written in an unsupported language. File is not indexed.
0001 # SPDX-FileCopyrightText: 2015 Alex Richardson <arichardson.kde@gmail.com>
0002 #
0003 # SPDX-License-Identifier: BSD-3-Clause
0004
0005 #[=======================================================================[.rst:
0006 FindPoppler
0007 -----------
0008
0009 Try to find Poppler.
0010
0011 This is a component-based find module, which makes use of the COMPONENTS
0012 and OPTIONAL_COMPONENTS arguments to find_module. The following components
0013 are available::
0014
0015 Core Cpp Qt5 Qt4 Glib
0016
0017 If no components are specified, this module will act as though all components
0018 were passed to OPTIONAL_COMPONENTS.
0019
0020 This module will define the following variables, independently of the
0021 components searched for or found:
0022
0023 ``Poppler_FOUND``
0024 TRUE if (the requested version of) Poppler is available
0025 ``Poppler_VERSION``
0026 Found Poppler version
0027 ``Poppler_TARGETS``
0028 A list of all targets imported by this module (note that there may be more
0029 than the components that were requested)
0030 ``Poppler_LIBRARIES``
0031 This can be passed to target_link_libraries() instead of the imported
0032 targets
0033 ``Poppler_INCLUDE_DIRS``
0034 This should be passed to target_include_directories() if the targets are
0035 not used for linking
0036 ``Poppler_DEFINITIONS``
0037 This should be passed to target_compile_options() if the targets are not
0038 used for linking
0039
0040 For each searched-for components, ``Poppler_<component>_FOUND`` will be set to
0041 TRUE if the corresponding Poppler library was found, and FALSE otherwise. If
0042 ``Poppler_<component>_FOUND`` is TRUE, the imported target
0043 ``Poppler::<component>`` will be defined. This module will also attempt to
0044 determine ``Poppler_*_VERSION`` variables for each imported target, although
0045 ``Poppler_VERSION`` should normally be sufficient.
0046
0047 In general we recommend using the imported targets, as they are easier to use
0048 and provide more control. Bear in mind, however, that if any target is in the
0049 link interface of an exported library, it must be made available by the
0050 package config file.
0051
0052 Since 5.19
0053 #]=======================================================================]
0054
0055 include(${CMAKE_CURRENT_LIST_DIR}/ECMFindModuleHelpersStub.cmake)
0056
0057 ecm_find_package_version_check(Poppler)
0058
0059 set(Poppler_known_components
0060 Cpp
0061 Qt4
0062 Qt5
0063 Qt6
0064 Glib
0065 )
0066 foreach(_comp ${Poppler_known_components})
0067 string(TOLOWER "${_comp}" _lc_comp)
0068 set(Poppler_${_comp}_component_deps "Core")
0069 set(Poppler_${_comp}_pkg_config "poppler-${_lc_comp}")
0070 set(Poppler_${_comp}_lib "poppler-${_lc_comp}")
0071 set(Poppler_${_comp}_header_subdir "poppler/${_lc_comp}")
0072 endforeach()
0073 set(Poppler_known_components Core ${Poppler_known_components})
0074
0075 set(Poppler_Core_component_deps "")
0076 set(Poppler_Core_pkg_config "poppler")
0077 # poppler-config.h header is only installed with --enable-xpdf-headers
0078 # fall back to using any header from a submodule with a path to make it work in that case too
0079 set(Poppler_Core_header "poppler-config.h" "cpp/poppler-version.h" "qt6/poppler-qt6.h" "qt5/poppler-qt5.h" "qt4/poppler-qt4.h" "glib/poppler.h")
0080 set(Poppler_Core_header_subdir "poppler")
0081 set(Poppler_Core_lib "poppler")
0082
0083 set(Poppler_Cpp_header "poppler-version.h")
0084 set(Poppler_Qt6_header "poppler-qt6.h")
0085 set(Poppler_Qt5_header "poppler-qt5.h")
0086 set(Poppler_Qt4_header "poppler-qt4.h")
0087 set(Poppler_Glib_header "poppler.h")
0088
0089 ecm_find_package_parse_components(Poppler
0090 RESULT_VAR Poppler_components
0091 KNOWN_COMPONENTS ${Poppler_known_components}
0092 )
0093 ecm_find_package_handle_library_components(Poppler
0094 COMPONENTS ${Poppler_components}
0095 )
0096
0097 # If pkg-config didn't provide us with version information,
0098 # try to extract it from poppler-version.h or poppler-config.h
0099 if(NOT Poppler_VERSION)
0100 find_file(Poppler_VERSION_HEADER
0101 NAMES "poppler-config.h" "cpp/poppler-version.h"
0102 HINTS ${Poppler_INCLUDE_DIRS}
0103 PATH_SUFFIXES ${Poppler_Core_header_subdir}
0104 )
0105 mark_as_advanced(Poppler_VERSION_HEADER)
0106 if(Poppler_VERSION_HEADER)
0107 file(READ ${Poppler_VERSION_HEADER} _poppler_version_header_contents)
0108 string(REGEX REPLACE
0109 "^.*[ \t]+POPPLER_VERSION[ \t]+\"([0-9d.]*)\".*$"
0110 "\\1"
0111 Poppler_VERSION
0112 "${_poppler_version_header_contents}"
0113 )
0114 unset(_poppler_version_header_contents)
0115 endif()
0116 endif()
0117
0118 find_package_handle_standard_args(Poppler
0119 FOUND_VAR
0120 Poppler_FOUND
0121 REQUIRED_VARS
0122 Poppler_LIBRARIES
0123 VERSION_VAR
0124 Poppler_VERSION
0125 HANDLE_COMPONENTS
0126 )
0127
0128 include(FeatureSummary)
0129 set_package_properties(Poppler PROPERTIES
0130 DESCRIPTION "A PDF rendering library"
0131 URL "https://poppler.freedesktop.org/"
0132 )