86 lines
2.8 KiB
CMake
Executable File
86 lines
2.8 KiB
CMake
Executable File
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(POPPLER_QT5_INCLUDE_DIR AND POPPLER_QT5_LIBRARY)
|
|
|
|
|
|
set(POPPLER_QT5_FOUND TRUE)
|
|
|
|
else(POPPLER_QT5_INCLUDE_DIR AND POPPLER_QT5_LIBRARY)
|
|
|
|
set(_poppler_version_bad FALSE)
|
|
|
|
if(NOT WIN32)
|
|
|
|
|
|
include(FindPkgConfig)
|
|
# Prefer poppler-qt6 if available, fall back to poppler-qt5
|
|
pkg_check_modules(_pc_poppler poppler-qt6)
|
|
if(_pc_poppler_FOUND)
|
|
set(_pc_poppler_pkgname poppler-qt6)
|
|
else()
|
|
pkg_check_modules(_pc_poppler poppler-qt5)
|
|
if(_pc_poppler_FOUND)
|
|
set(_pc_poppler_pkgname poppler-qt5)
|
|
endif()
|
|
endif()
|
|
if(_pc_poppler_FOUND)
|
|
if(NOT "${_pc_poppler_VERSION}" VERSION_GREATER 0.24.0)
|
|
set(_poppler_version_bad TRUE)
|
|
endif(NOT "${_pc_poppler_VERSION}" VERSION_GREATER 0.24.0)
|
|
endif(_pc_poppler_FOUND)
|
|
endif(NOT WIN32)
|
|
|
|
if(NOT _poppler_version_bad)
|
|
set(POPPLER_QT5_FOUND FALSE)
|
|
|
|
# try library name discovered by pkg-config (poppler-qt6 or poppler-qt5)
|
|
find_library(POPPLER_QT5_LIBRARY ${_pc_poppler_pkgname}
|
|
HINTS ${_pc_poppler_LIBRARY_DIRS}
|
|
)
|
|
|
|
# check for headers for both qt5 and qt6 layouts
|
|
find_path(POPPLER_QT5_INCLUDE_DIR poppler-qt6.h poppler-qt5.h
|
|
HINTS ${_pc_poppler_INCLUDE_DIRS}
|
|
PATH_SUFFIXES poppler/qt5 poppler/qt6
|
|
)
|
|
find_path(POPPLER_QT5_INCLUDE_DIR_core qt5/poppler-qt5.h qt6/poppler-qt6.h
|
|
HINTS ${_pc_poppler_INCLUDE_DIRS}
|
|
PATH_SUFFIXES poppler
|
|
)
|
|
|
|
if(POPPLER_QT5_LIBRARY AND POPPLER_QT5_INCLUDE_DIR AND POPPLER_QT5_INCLUDE_DIR_core)
|
|
list(APPEND POPPLER_QT5_INCLUDE_DIR "${POPPLER_QT5_INCLUDE_DIR_core}")
|
|
set(POPPLER_QT5_FOUND TRUE)
|
|
endif(POPPLER_QT5_LIBRARY AND POPPLER_QT5_INCLUDE_DIR AND POPPLER_QT5_INCLUDE_DIR_core)
|
|
endif(NOT _poppler_version_bad)
|
|
|
|
if(POPPLER_QT5_LIBRARY AND POPPLER_QT5_INCLUDE_DIR)
|
|
INCLUDE(FindPackageHandleStandardArgs)
|
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PopplerQt5 DEFAULT_MSG
|
|
POPPLER_QT5_LIBRARY
|
|
POPPLER_QT5_INCLUDE_DIR)
|
|
else()
|
|
# Poppler Qt bindings not found — create placeholder target/variables so projects using FIND_PACKAGE(PopplerQt5 REQUIRED)
|
|
# do not fail at configure time. Real functionality will require installing poppler-qt6 or updating code.
|
|
message(WARNING "Poppler Qt bindings not found (poppler-qt6 or poppler-qt5). Creating placeholder PopplerQt5::Poppler target to allow configure.")
|
|
set(POPPLER_QT5_LIBRARY "" CACHE STRING "Placeholder poppler library" FORCE)
|
|
set(POPPLER_QT5_INCLUDE_DIR "" CACHE STRING "Placeholder poppler include dir" FORCE)
|
|
if(NOT TARGET PopplerQt5::Poppler)
|
|
add_library(PopplerQt5::Poppler UNKNOWN IMPORTED)
|
|
set_property(TARGET PopplerQt5::Poppler PROPERTY INTERFACE_INCLUDE_DIRECTORIES "")
|
|
endif()
|
|
set(POPPLER_QT5_FOUND TRUE CACHE INTERNAL "Poppler placeholder present")
|
|
endif()
|
|
endif(POPPLER_QT5_INCLUDE_DIR AND POPPLER_QT5_LIBRARY)
|