mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-11-27 00:25:38 +00:00
bd2c229476
Also added the PoDoFo and Poppler libraries as dependencies
179 lines
6.2 KiB
CMake
179 lines
6.2 KiB
CMake
# - Try to find Poppler and specified components: {cpp, Qt4, Qt5}
|
|
# Once done this will define:
|
|
#
|
|
# POPPLER_FOUND - system has Poppler and specified components
|
|
# POPPLER_INCLUDE_DIRS - The include directories for Poppler headers
|
|
# POPPLER_LIBRARIES - Link these to use Poppler
|
|
# POPPLER_NEEDS_FONTCONFIG - A boolean indicating if libpoppler depends on libfontconfig
|
|
# POPPLER_HAS_XPDF - A boolean indicating if libpoppler headers are available
|
|
# POPPLER_INCLUDE_DIR - the include directory for libpoppler XPDF headers
|
|
#
|
|
# Redistribution and use of this file is allowed according to the terms of the
|
|
# MIT license. For details see the file COPYING-CMAKE-MODULES.
|
|
|
|
if( POPPLER_LIBRARIES )
|
|
# in cache already
|
|
set( Poppler_FIND_QUIETLY TRUE )
|
|
endif( POPPLER_LIBRARIES )
|
|
|
|
# Check which components we need to find
|
|
list(FIND Poppler_FIND_COMPONENTS "cpp" FIND_POS)
|
|
if(${FIND_POS} EQUAL -1)
|
|
set(FIND_CPP FALSE)
|
|
else()
|
|
set(FIND_CPP TRUE)
|
|
endif()
|
|
|
|
list(FIND Poppler_FIND_COMPONENTS "Qt4" FIND_POS)
|
|
if(${FIND_POS} EQUAL -1)
|
|
set(FIND_QT4 FALSE)
|
|
else()
|
|
set(FIND_QT4 TRUE)
|
|
endif()
|
|
|
|
list(FIND Poppler_FIND_COMPONENTS "Qt5" FIND_POS)
|
|
if(${FIND_POS} EQUAL -1)
|
|
set(FIND_QT5 FALSE)
|
|
else()
|
|
set(FIND_QT5 TRUE)
|
|
endif()
|
|
|
|
# Default values
|
|
set(POPPLER_FOUND FALSE)
|
|
set(POPPLER_INCLUDE_DIRS)
|
|
set(POPPLER_LIBRARIES)
|
|
set(POPPLER_REQUIRED "POPPLER_LIBRARY")
|
|
|
|
# use pkg-config to get the directories and then use these values
|
|
# in the find_path() and find_library() calls
|
|
if( NOT WIN32 )
|
|
find_package(PkgConfig)
|
|
|
|
pkg_check_modules(POPPLER_PKG QUIET poppler)
|
|
if( FIND_CPP )
|
|
pkg_check_modules(POPPLER_CPP_PKG QUIET poppler-cpp)
|
|
endif()
|
|
if( FIND_QT4 )
|
|
pkg_check_modules(POPPLER_QT4_PKG QUIET poppler-qt4)
|
|
endif()
|
|
if( FIND_QT5 )
|
|
pkg_check_modules(POPPLER_QT5_PKG QUIET poppler-qt5)
|
|
endif()
|
|
endif( NOT WIN32 )
|
|
|
|
# Check for Poppler headers (optional)
|
|
find_path( POPPLER_INCLUDE_DIR NAMES poppler-config.h PATH_SUFFIXES poppler )
|
|
if( NOT( POPPLER_INCLUDE_DIR ) )
|
|
#if( NOT Poppler_FIND_QUIETLY )
|
|
# message( STATUS "Could not find poppler-config.h, recompile Poppler with "
|
|
# "ENABLE_XPDF_HEADERS to link against libpoppler directly." )
|
|
#endif()
|
|
set( POPPLER_HAS_XPDF FALSE )
|
|
else()
|
|
set( POPPLER_HAS_XPDF TRUE )
|
|
list(APPEND POPPLER_INCLUDE_DIRS ${POPPLER_INCLUDE_DIR})
|
|
endif()
|
|
|
|
# Find libpoppler (Required)
|
|
find_library( POPPLER_LIBRARY NAMES poppler ${POPPLER_CPP_PKG_LIBRARIES}
|
|
HINTS ${POPPLER_PKG_LIBDIR} ${POPPLER_CPP_PKG_LIBDIR} )
|
|
if( NOT(POPPLER_LIBRARY) )
|
|
if( NOT Poppler_FIND_QUIETLY )
|
|
message(STATUS "Could not find libpoppler." )
|
|
endif( NOT Poppler_FIND_QUIETLY )
|
|
else( NOT(POPPLER_LIBRARY) )
|
|
list(APPEND POPPLER_LIBRARIES ${POPPLER_LIBRARY})
|
|
|
|
# Scan poppler libraries for dependencies on Fontconfig
|
|
include(GetPrerequisites)
|
|
mark_as_advanced(gp_cmd)
|
|
GET_PREREQUISITES("${POPPLER_LIBRARY}" POPPLER_PREREQS 1 0 "" "")
|
|
if("${POPPLER_PREREQS}" MATCHES "fontconfig")
|
|
set(POPPLER_NEEDS_FONTCONFIG TRUE)
|
|
else()
|
|
set(POPPLER_NEEDS_FONTCONFIG FALSE)
|
|
endif()
|
|
|
|
# cpp Component
|
|
if( FIND_CPP )
|
|
list(APPEND POPPLER_REQUIRED POPPLER_CPP_INCLUDE_DIR POPPLER_CPP_LIBRARY)
|
|
find_path( POPPLER_CPP_INCLUDE_DIR NAMES poppler-version.h
|
|
HINTS ${POPPLER_PKG_INCLUDEDIR} ${POPPLER_CPP_PKG_INCLUDEDIR}
|
|
PATH_SUFFIXES cpp poppler/cpp )
|
|
if( NOT(POPPLER_CPP_INCLUDE_DIR) )
|
|
if( NOT Poppler_FIND_QUIETLY )
|
|
message(STATUS "Could not find Poppler cpp wrapper headers." )
|
|
endif( NOT Poppler_FIND_QUIETLY )
|
|
else()
|
|
list(APPEND POPPLER_INCLUDE_DIRS ${POPPLER_CPP_INCLUDE_DIR})
|
|
endif()
|
|
find_library(
|
|
POPPLER_CPP_LIBRARY NAMES poppler-cpp ${POPPLER_CPP_PKG_LIBRARIES}
|
|
HINTS ${POPPLER_PKG_LIBDIR} ${POPPLER_CPP_PKG_LIBDIR} )
|
|
if( NOT(POPPLER_CPP_LIBRARY) )
|
|
if( NOT Poppler_FIND_QUIETLY )
|
|
message(STATUS "Could not find libpoppler-cpp." )
|
|
endif( NOT Poppler_FIND_QUIETLY )
|
|
else()
|
|
list(APPEND POPPLER_LIBRARIES ${POPPLER_CPP_LIBRARY})
|
|
endif()
|
|
endif()
|
|
|
|
# Qt4 Component
|
|
if( FIND_QT4 )
|
|
list(APPEND POPPLER_REQUIRED POPPLER_QT4_INCLUDE_DIR POPPLER_QT4_LIBRARY)
|
|
find_path(POPPLER_QT4_INCLUDE_DIR NAMES poppler-qt4.h poppler-link.h
|
|
HINTS ${POPPLER_PKG_INCLUDEDIR} ${POPPLER_CPP_QT4_INCLUDEDIR}
|
|
PATH_SUFFIXES qt4 poppler/qt4 )
|
|
if( NOT(POPPLER_QT4_INCLUDE_DIR) )
|
|
if( NOT Poppler_FIND_QUIETLY )
|
|
message(STATUS "Could not find Poppler-Qt4 headers." )
|
|
endif( NOT Poppler_FIND_QUIETLY )
|
|
else()
|
|
list(APPEND POPPLER_INCLUDE_DIRS ${POPPLER_QT4_INCLUDE_DIR})
|
|
endif()
|
|
find_library(
|
|
POPPLER_QT4_LIBRARY NAMES poppler-qt4 ${POPPLER_QT4_PKG_LIBRARIES}
|
|
HINTS ${POPPLER_PKG_LIBDIR} ${POPPLER_QT4_PKG_LIBDIR} )
|
|
if( NOT(POPPLER_QT4_LIBRARY) )
|
|
if( NOT Poppler_FIND_QUIETLY )
|
|
message(STATUS "Could not find libpoppler-qt4." )
|
|
endif( NOT Poppler_FIND_QUIETLY )
|
|
else()
|
|
list(APPEND POPPLER_LIBRARIES ${POPPLER_QT4_LIBRARY})
|
|
endif()
|
|
endif()
|
|
|
|
# Qt5 Component
|
|
if( FIND_QT5 )
|
|
list(APPEND POPPLER_REQUIRED POPPLER_QT5_INCLUDE_DIR POPPLER_QT5_LIBRARY)
|
|
find_path(POPPLER_QT5_INCLUDE_DIR NAMES poppler-qt5.h poppler-link.h
|
|
HINTS ${POPPLER_QT5_INCLUDEDIR} ${POPPLER_QT5_PKG_INCLUDEDIR}
|
|
PATH_SUFFIXES qt5 poppler/qt5 )
|
|
if( NOT(POPPLER_QT5_INCLUDE_DIR) )
|
|
if( NOT Poppler_FIND_QUIETLY )
|
|
message( STATUS "Could not find Poppler-Qt5 headers." )
|
|
endif( NOT Poppler_FIND_QUIETLY )
|
|
else()
|
|
list(APPEND POPPLER_INCLUDE_DIRS ${POPPLER_QT5_INCLUDE_DIR})
|
|
endif()
|
|
find_library(
|
|
POPPLER_QT5_LIBRARY NAMES poppler-qt5 ${POPPLER_QT5_PKG_LIBRARIES}
|
|
HINTS ${POPPLER_PKG_LIBDIR} ${POPPLER_QT5_PKG_LIBDIR} )
|
|
if( NOT(POPPLER_QT5_LIBRARY) )
|
|
if( NOT Poppler_FIND_QUIETLY )
|
|
message(STATUS "Could not find libpoppler-qt5." )
|
|
endif( NOT Poppler_FIND_QUIETLY )
|
|
else()
|
|
list(APPEND POPPLER_LIBRARIES ${POPPLER_QT5_LIBRARY})
|
|
endif()
|
|
endif()
|
|
endif( NOT(POPPLER_LIBRARY) )
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(Poppler DEFAULT_MSG ${POPPLER_REQUIRED})
|
|
|
|
mark_as_advanced(POPPLER_CPP_INCLUDE_DIR POPPLER_QT4_INCLUDE_DIR
|
|
POPPLER_QT5_INCLUDE_DIR POPPLER_LIBRARIES POPPLER_CPP_LIBRARY
|
|
POPPLER_QT4_LIBRARY POPPLER_QT5_LIBRARY)
|