| project(poppler) |
| |
| cmake_minimum_required(VERSION 2.4.0 FATAL_ERROR) |
| |
| set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) |
| |
| include(PopplerDefaults) |
| include(PopplerMacros) |
| include(MacroOptionalFindPackage) |
| find_package(PkgConfig) |
| include(MacroEnsureVersion) |
| include(MacroBoolTo01) |
| |
| set(POPPLER_VERSION "0.10.7") |
| |
| # command line switches |
| option(ENABLE_XPDF_HEADERS "Install unsupported xpdf headers." OFF) |
| option(BUILD_GTK_TESTS "Whether compile the GTK+ test programs." ON) |
| option(BUILD_QT3_TESTS "Whether compile the Qt3 test programs." ON) |
| option(BUILD_QT4_TESTS "Whether compile the Qt4 test programs." ON) |
| option(ENABLE_SPLASH "Build the Splash graphics backend." ON) |
| option(ENABLE_UTILS "Compile poppler command line utils." ON) |
| option(ENABLE_ABIWORD "Build the Abiword backend." ON) |
| option(ENABLE_LIBOPENJPEG "Use libopenjpeg for JPX streams." ON) |
| option(ENABLE_ZLIB "TODO" OFF) |
| option(USE_EXCEPTIONS "Throw exceptions to deal with not enough memory and similar problems." OFF) |
| option(USE_FIXEDPOINT "Use fixed point arithmetic" OFF) |
| |
| # Enable these unconditionally. |
| set(MULTITHREAD ON) |
| set(OPI_SUPPORT ON) |
| set(TEXTOUT_WORD_LIST ON) |
| |
| # setting the minimum required versions for some components |
| set(QT3_MIN_VERSION "3.3.0") |
| set(QT4_MIN_VERSION "4.3.0") |
| set(CAIRO_VERSION "1.4") |
| |
| macro_bool_to_01(ENABLE_SPLASH HAVE_SPLASH) |
| find_package(Freetype REQUIRED) |
| find_package(Fontconfig REQUIRED) |
| macro_optional_find_package(JPEG) |
| if(JPEG_FOUND) |
| set(ENABLE_LIBJPEG ${JPEG_FOUND}) |
| endif(JPEG_FOUND) |
| macro_optional_find_package(Qt3) |
| macro_optional_find_package(Qt4) |
| macro_optional_find_package(GTK) |
| if(GLIB_FOUND) |
| macro_optional_find_package(Cairo) |
| set(HAVE_CAIRO ${CAIRO_FOUND}) |
| set(POPPLER_WITH_GDK ${GDK_FOUND}) |
| if(CAIRO_FOUND) |
| set(CAIRO_REQ "cairo") |
| endif(CAIRO_FOUND) |
| endif(GLIB_FOUND) |
| if(ENABLE_ZLIB) |
| find_package(ZLIB) |
| if(ZLIB_FOUND) |
| set(HAVE_LIBZ ${ZLIB_FOUND}) |
| endif(ZLIB_FOUND) |
| set(ENABLE_ZLIB ${ZLIB_FOUND}) |
| endif(ENABLE_ZLIB) |
| if(ENABLE_ABIWORD) |
| find_package(LibXml2) |
| set(ENABLE_ABIWORD ${LIBXML2_FOUND}) |
| endif(ENABLE_ABIWORD) |
| if(ENABLE_LIBOPENJPEG) |
| find_package(LIBOPENJPEG) |
| set(ENABLE_LIBOPENJPEG ${LIBOPENJPEG_FOUND}) |
| endif(ENABLE_LIBOPENJPEG) |
| |
| add_definitions(-DHAVE_CONFIG_H=1 ${FONTCONFIG_DEFINITIONS}) |
| include_directories( |
| ${CMAKE_CURRENT_SOURCE_DIR} |
| ${CMAKE_CURRENT_SOURCE_DIR}/fofi |
| ${CMAKE_CURRENT_SOURCE_DIR}/goo |
| ${CMAKE_CURRENT_SOURCE_DIR}/poppler |
| ${CMAKE_CURRENT_BINARY_DIR} |
| ${CMAKE_CURRENT_BINARY_DIR}/poppler |
| ${FREETYPE_INCLUDE_DIR} |
| ) |
| set(HAVE_FREETYPE_H ON) |
| |
| if(ENABLE_ZLIB) |
| include_directories(${ZLIB_INCLUDE_DIR}) |
| endif(ENABLE_ZLIB) |
| if(JPEG_FOUND) |
| include_directories(${JPEG_INCLUDE_DIR}) |
| set(ENABLE_LIBJPEG ON) |
| endif(JPEG_FOUND) |
| if(ENABLE_ABIWORD) |
| include_directories(${LIBXML2_INCLUDE_DIR}) |
| add_definitions(${LIBXML2_DEFINITIONS}) |
| endif(ENABLE_ABIWORD) |
| if(LIBOPENJPEG_FOUND) |
| include_directories(${LIBOPENJPEG_INCLUDE_DIR}) |
| endif(LIBOPENJPEG_FOUND) |
| |
| if(DEFINED COMPILE_WARNINGS) |
| else(DEFINED COMPILE_WARNINGS) |
| set(COMPILE_WARNINGS "yes") |
| endif(DEFINED COMPILE_WARNINGS) |
| string(TOLOWER "${COMPILE_WARNINGS}" _comp_warnings) |
| if(_comp_warnings STREQUAL "no") |
| add_definitions(${DEFAULT_COMPILE_WARNINGS_NO}) |
| endif(_comp_warnings STREQUAL "no") |
| if(_comp_warnings STREQUAL "yes") |
| add_definitions(${DEFAULT_COMPILE_WARNINGS_YES}) |
| endif(_comp_warnings STREQUAL "yes") |
| if(_comp_warnings STREQUAL "kde") |
| set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS_KDE} ${CMAKE_CXX_FLAGS}") |
| endif(_comp_warnings STREQUAL "kde") |
| |
| |
| include(ConfigureChecks.cmake) |
| configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) |
| configure_file(poppler-config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/poppler/poppler-config.h) |
| |
| |
| set(poppler_SRCS |
| goo/gfile.cc |
| goo/gmempp.cc |
| goo/GooHash.cc |
| goo/GooList.cc |
| goo/GooTimer.cc |
| goo/GooString.cc |
| goo/gmem.cc |
| goo/FixedPoint.cc |
| fofi/FoFiBase.cc |
| fofi/FoFiEncodings.cc |
| fofi/FoFiTrueType.cc |
| fofi/FoFiType1.cc |
| fofi/FoFiType1C.cc |
| poppler/Annot.cc |
| poppler/Array.cc |
| poppler/BuiltinFont.cc |
| poppler/BuiltinFontTables.cc |
| poppler/Catalog.cc |
| poppler/CharCodeToUnicode.cc |
| poppler/CMap.cc |
| poppler/DateInfo.cc |
| poppler/Decrypt.cc |
| poppler/Dict.cc |
| poppler/Error.cc |
| poppler/FileSpec.cc |
| poppler/FontEncodingTables.cc |
| poppler/Form.cc |
| poppler/FontInfo.cc |
| poppler/Function.cc |
| poppler/Gfx.cc |
| poppler/GfxFont.cc |
| poppler/GfxState.cc |
| poppler/GlobalParams.cc |
| poppler/JArithmeticDecoder.cc |
| poppler/JBIG2Stream.cc |
| poppler/Lexer.cc |
| poppler/Link.cc |
| poppler/NameToCharCode.cc |
| poppler/Object.cc |
| poppler/OptionalContent.cc |
| poppler/Outline.cc |
| poppler/OutputDev.cc |
| poppler/Page.cc |
| poppler/PageTransition.cc |
| poppler/Parser.cc |
| poppler/PDFDoc.cc |
| poppler/PDFDocEncoding.cc |
| poppler/ProfileData.cc |
| poppler/PreScanOutputDev.cc |
| poppler/PSTokenizer.cc |
| poppler/Stream.cc |
| poppler/UnicodeMap.cc |
| poppler/UnicodeTypeTable.cc |
| poppler/XRef.cc |
| poppler/PSOutputDev.cc |
| poppler/TextOutputDev.cc |
| poppler/PageLabelInfo.cc |
| poppler/SecurityHandler.cc |
| poppler/Sound.cc |
| poppler/XpdfPluginAPI.cc |
| poppler/Movie.cc |
| ) |
| set(poppler_LIBS ${FREETYPE_LIBRARIES} ${FONTCONFIG_LIBRARIES}) |
| if(ENABLE_SPLASH) |
| set(poppler_SRCS ${poppler_SRCS} |
| poppler/SplashOutputDev.cc |
| splash/Splash.cc |
| splash/SplashBitmap.cc |
| splash/SplashClip.cc |
| splash/SplashFTFont.cc |
| splash/SplashFTFontEngine.cc |
| splash/SplashFTFontFile.cc |
| splash/SplashFont.cc |
| splash/SplashFontEngine.cc |
| splash/SplashFontFile.cc |
| splash/SplashFontFileID.cc |
| splash/SplashPath.cc |
| splash/SplashPattern.cc |
| splash/SplashScreen.cc |
| splash/SplashState.cc |
| splash/SplashT1Font.cc |
| splash/SplashT1FontEngine.cc |
| splash/SplashT1FontFile.cc |
| splash/SplashXPath.cc |
| splash/SplashXPathScanner.cc |
| ) |
| endif(ENABLE_SPLASH) |
| if(JPEG_FOUND) |
| set(poppler_SRCS ${poppler_SRCS} |
| poppler/DCTStream.cc |
| ) |
| set(poppler_LIBS ${poppler_LIBS} ${JPEG_LIBRARIES}) |
| endif(JPEG_FOUND) |
| if(ENABLE_ZLIB) |
| set(poppler_SRCS ${poppler_SRCS} |
| poppler/FlateStream.cc |
| ) |
| set(poppler_LIBS ${poppler_LIBS} ${ZLIB_LIBRARIES}) |
| endif(ENABLE_ZLIB) |
| if(LIBOPENJPEG_FOUND) |
| set(poppler_SRCS ${poppler_SRCS} |
| poppler/JPEG2000Stream.cc |
| ) |
| set(poppler_LIBS ${poppler_LIBS} ${LIBOPENJPEG_LIBRARIES}) |
| else (LIBOPENJPEG_FOUND) |
| set(poppler_SRCS ${poppler_SRCS} |
| poppler/JPXStream.cc |
| ) |
| endif(LIBOPENJPEG_FOUND) |
| if(ENABLE_ABIWORD) |
| set(poppler_SRCS ${poppler_SRCS} |
| poppler/ABWOutputDev.cc |
| ) |
| set(poppler_LIBS ${poppler_LIBS} ${LIBXML2_LIBRARIES}) |
| endif(ENABLE_ABIWORD) |
| if(WIN32) |
| # gdi32 is needed under win32 |
| set(poppler_LIBS ${poppler_LIBS} gdi32) |
| endif(WIN32) |
| |
| if(MSVC) |
| set(poppler_SRCS ${poppler_SRCS} poppler/GlobalParamsWin.cc) |
| add_library(poppler STATIC ${poppler_SRCS}) |
| else(MSVC) |
| add_library(poppler SHARED ${poppler_SRCS}) |
| endif(MSVC) |
| set_target_properties(poppler PROPERTIES VERSION 4.0.0 SOVERSION 4) |
| target_link_libraries(poppler ${poppler_LIBS}) |
| install(TARGETS poppler RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) |
| |
| if(ENABLE_XPDF_HEADERS) |
| install(FILES |
| poppler/Annot.h |
| poppler/Array.h |
| poppler/BuiltinFont.h |
| poppler/BuiltinFontTables.h |
| poppler/Catalog.h |
| poppler/CharCodeToUnicode.h |
| poppler/CMap.h |
| poppler/DateInfo.h |
| poppler/Decrypt.h |
| poppler/Dict.h |
| poppler/Error.h |
| poppler/FileSpec.h |
| poppler/FontEncodingTables.h |
| poppler/FontInfo.h |
| poppler/Form.h |
| poppler/Function.cc |
| poppler/Function.h |
| poppler/Gfx.h |
| poppler/GfxFont.h |
| poppler/GfxState.h |
| poppler/GlobalParams.h |
| poppler/JArithmeticDecoder.h |
| poppler/JBIG2Stream.h |
| poppler/Lexer.h |
| poppler/Link.h |
| poppler/Movie.h |
| poppler/NameToCharCode.h |
| poppler/Object.h |
| poppler/OptionalContent.h |
| poppler/Outline.h |
| poppler/OutputDev.h |
| poppler/Page.h |
| poppler/PageTransition.h |
| poppler/Parser.h |
| poppler/PDFDoc.h |
| poppler/PDFDocEncoding.h |
| poppler/ProfileData.h |
| poppler/PreScanOutputDev.h |
| poppler/PSTokenizer.h |
| poppler/Stream-CCITT.h |
| poppler/Stream.h |
| poppler/UnicodeMap.h |
| poppler/UnicodeMapTables.h |
| poppler/UnicodeTypeTable.h |
| poppler/UnicodeCClassTables.h |
| poppler/UnicodeCompTables.h |
| poppler/UnicodeDecompTables.h |
| poppler/XRef.h |
| poppler/CharTypes.h |
| poppler/CompactFontTables.h |
| poppler/ErrorCodes.h |
| poppler/NameToUnicodeTable.h |
| poppler/PSOutputDev.h |
| poppler/TextOutputDev.h |
| poppler/SecurityHandler.h |
| poppler/UTF8.h |
| poppler/XpdfPluginAPI.h |
| poppler/Sound.h |
| ${CMAKE_CURRENT_BINARY_DIR}/poppler/poppler-config.h |
| DESTINATION include/poppler) |
| install(FILES |
| goo/GooHash.h |
| goo/GooList.h |
| goo/GooTimer.h |
| goo/GooMutex.h |
| goo/GooString.h |
| goo/GooVector.h |
| goo/gtypes.h |
| goo/gmem.h |
| goo/gfile.h |
| goo/FixedPoint.h |
| DESTINATION include/poppler/goo) |
| if(LIBOPENJPEG_FOUND) |
| install(FILES |
| poppler/JPEG2000Stream.h |
| DESTINATION include/poppler) |
| else(LIBOPENJPEG_FOUND) |
| install(FILES |
| poppler/JPXStream.h |
| DESTINATION include/poppler) |
| endif(LIBOPENJPEG_FOUND) |
| if(ENABLE_SPLASH) |
| install(FILES |
| poppler/SplashOutputDev.h |
| DESTINATION include/poppler) |
| install(FILES |
| splash/Splash.h |
| splash/SplashBitmap.h |
| splash/SplashClip.h |
| splash/SplashErrorCodes.h |
| splash/SplashFTFont.h |
| splash/SplashFTFontEngine.h |
| splash/SplashFTFontFile.h |
| splash/SplashFont.h |
| splash/SplashFontEngine.h |
| splash/SplashFontFile.h |
| splash/SplashFontFileID.h |
| splash/SplashGlyphBitmap.h |
| splash/SplashMath.h |
| splash/SplashPath.h |
| splash/SplashPattern.h |
| splash/SplashScreen.h |
| splash/SplashState.h |
| splash/SplashT1Font.h |
| splash/SplashT1FontEngine.h |
| splash/SplashT1FontFile.h |
| splash/SplashTypes.h |
| splash/SplashXPath.h |
| splash/SplashXPathScanner.h |
| DESTINATION include/poppler/splash) |
| endif(ENABLE_SPLASH) |
| endif(ENABLE_XPDF_HEADERS) |
| |
| |
| if(ENABLE_UTILS) |
| add_subdirectory(utils) |
| endif(ENABLE_UTILS) |
| if(GLIB_FOUND) |
| add_subdirectory(glib) |
| endif(GLIB_FOUND) |
| if(QT3_FOUND) |
| add_subdirectory(qt) |
| endif(QT3_FOUND) |
| add_subdirectory(test) |
| if(QT4_FOUND) |
| add_subdirectory(qt4) |
| endif(QT4_FOUND) |
| |
| set(PKG_CONFIG_VERSION_0_18 TRUE) |
| if(PKGCONFIG_EXECUTABLE) |
| exec_program(${PKGCONFIG_EXECUTABLE} ARGS --version RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _output_VAR) |
| macro_ensure_version("0.18" "${_output_VAR}" PKG_CONFIG_VERSION_0_18) |
| endif(PKGCONFIG_EXECUTABLE) |
| if(PKG_CONFIG_VERSION_0_18) |
| set(PC_REQUIRES "") |
| set(PC_REQUIRES_PRIVATE "Requires.private: poppler = ${POPPLER_VERSION}") |
| else(PKG_CONFIG_VERSION_0_18) |
| set(PC_REQUIRES "poppler = ${POPPLER_VERSION}") |
| set(PC_REQUIRES_PRIVATE "") |
| endif(PKG_CONFIG_VERSION_0_18) |
| |
| poppler_create_install_pkgconfig(poppler.pc lib/pkgconfig) |
| if(ENABLE_SPLASH) |
| poppler_create_install_pkgconfig(poppler-splash.pc lib/pkgconfig) |
| endif(ENABLE_SPLASH) |
| if(QT3_FOUND) |
| poppler_create_install_pkgconfig(poppler-qt.pc lib/pkgconfig) |
| endif(QT3_FOUND) |
| if(QT4_FOUND) |
| poppler_create_install_pkgconfig(poppler-qt4.pc lib/pkgconfig) |
| endif(QT4_FOUND) |
| if(GLIB_FOUND) |
| poppler_create_install_pkgconfig(poppler-glib.pc lib/pkgconfig) |
| endif(GLIB_FOUND) |
| if(CAIRO_FOUND) |
| poppler_create_install_pkgconfig(poppler-cairo.pc lib/pkgconfig) |
| endif(CAIRO_FOUND) |
| |
| |
| message("Building Poppler with support for:") |
| show_end_message("splash output" ENABLE_SPLASH) |
| show_end_message("cairo output" CAIRO_FOUND) |
| show_end_message("abiword output" ENABLE_ABIWORD) |
| show_end_message("qt wrapper" QT3_FOUND) |
| show_end_message("qt4 wrapper" QT4_FOUND) |
| show_end_message("glib wrapper" GLIB_FOUND) |
| # message(" use gtk-doc: $enable_gtk_doc") # TODO |
| show_end_message("use libjpeg" ENABLE_LIBJPEG) |
| show_end_message("use zlib" ENABLE_ZLIB) |
| show_end_message("use libopenjpeg" LIBOPENJPEG_FOUND) |
| show_end_message("command line utils" ENABLE_UTILS) |