mirror of
				https://github.com/RetroDECK/ES-DE.git
				synced 2025-04-10 19:15:13 +00:00 
			
		
		
		
	
		
			
	
	
		
			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)
 |