diff options
author | Karl Berry <karl@freefriends.org> | 2018-01-09 18:53:05 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-01-09 18:53:05 +0000 |
commit | 9b0195121df2c53bdd030fdec6d7871f27f057f0 (patch) | |
tree | f58fc29c2856f942f64b30d91a1fc9247e1d5b10 /Build/source/libs/poppler/poppler-src/CMakeLists.txt | |
parent | 332064c92a01296b5dd2d25524d0f8286ccdd107 (diff) |
poppler 0.62.0, requiring C++11; luatex not updated yet
git-svn-id: svn://tug.org/texlive/trunk@46257 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/poppler/poppler-src/CMakeLists.txt')
-rw-r--r-- | Build/source/libs/poppler/poppler-src/CMakeLists.txt | 410 |
1 files changed, 194 insertions, 216 deletions
diff --git a/Build/source/libs/poppler/poppler-src/CMakeLists.txt b/Build/source/libs/poppler/poppler-src/CMakeLists.txt index d36e06e35c7..d8072a936c9 100644 --- a/Build/source/libs/poppler/poppler-src/CMakeLists.txt +++ b/Build/source/libs/poppler/poppler-src/CMakeLists.txt @@ -1,6 +1,6 @@ project(poppler) -cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR) +cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) @@ -10,47 +10,62 @@ include(MacroOptionalFindPackage) find_package(PkgConfig) include(MacroEnsureVersion) include(MacroBoolTo01) -find_package(Threads) +if (WIN32) + message("-- Using win32 threads") +else() + set(CMAKE_THREAD_PREFER_PTHREAD TRUE) + set(THREADS_PREFER_PTHREAD_FLAG TRUE) + find_package(Threads) +endif() include(TestBigEndian) test_big_endian(WORDS_BIGENDIAN) include(CheckFileOffsetBits) CHECK_FILE_OFFSET_BITS() +include(GNUInstallDirs) + find_package (ECM 1.6.0 QUIET NO_MODULE) if (ECM_FOUND) include("${ECM_MODULE_DIR}/ECMEnableSanitizers.cmake") endif() set(POPPLER_MAJOR_VERSION "0") -set(POPPLER_MINOR_VERSION "52") +set(POPPLER_MINOR_VERSION "62") set(POPPLER_MICRO_VERSION "0") set(POPPLER_VERSION "${POPPLER_MAJOR_VERSION}.${POPPLER_MINOR_VERSION}.${POPPLER_MICRO_VERSION}") +set (CMAKE_CXX_STANDARD 11) +set (CMAKE_CXX_EXTENSIONS OFF) + # 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_QT4_TESTS "Whether compile the Qt4 test programs." ON) option(BUILD_QT5_TESTS "Whether compile the Qt5 test programs." ON) option(BUILD_CPP_TESTS "Whether compile the CPP test programs." ON) option(ENABLE_SPLASH "Build the Splash graphics backend." ON) option(ENABLE_UTILS "Compile poppler command line utils." ON) option(ENABLE_CPP "Compile poppler cpp wrapper." ON) -set(ENABLE_LIBOPENJPEG "auto" CACHE STRING "Use libopenjpeg for JPX streams. Possible values: auto, openjpeg1, openjpeg2. 'auto' prefers openjpeg1 over openjpeg2 if both are available. Unset to not use openjpeg.") -set(ENABLE_CMS "auto" CACHE STRING "Use color management system. Possible values: auto, lcms1, lcms2. 'auto' prefers lcms2 over lcms1 if both are available. Unset to disable color management system.") -option(ENABLE_LIBCURL "Build libcurl based HTTP support." OFF) +option(ENABLE_GLIB "Compile poppler glib wrapper." ON) +option(ENABLE_GTK_DOC "Whether to generate glib API documentation." OFF) +option(ENABLE_QT5 "Compile poppler qt5 wrapper." ON) +set(ENABLE_LIBOPENJPEG "openjpeg2" CACHE STRING "Use libopenjpeg for JPX streams. Possible values: openjpeg2, unmaintained, none. 'unmaintained' gives you the internal unmaintained decoder. Use at your own risk. 'none' compiles no JPX decoder at all. Default: openjpeg2") +set(ENABLE_CMS "lcms2" CACHE STRING "Use color management system. Possible values: lcms2, none. 'none' disables color management system.") +set(ENABLE_DCTDECODER "libjpeg" CACHE STRING "Use libjpeg for DCT streams. Possible values: libjpeg, unmaintained, none. will use libjpeg if available or fail if not. 'unmaintained' gives you the internal unmaintained decoder. Use at your own risk. 'none' compiles no DCT decoder at all. Default: libjpeg") +option(ENABLE_LIBCURL "Build libcurl based HTTP support." ON) option(ENABLE_ZLIB "Build with zlib." ON) option(ENABLE_ZLIB_UNCOMPRESS "Use zlib to uncompress flate streams (not totally safe)." OFF) option(SPLASH_CMYK "Include support for CMYK rasterization." OFF) option(USE_FIXEDPOINT "Use fixed point arithmetic in the Splash backend" OFF) option(USE_FLOAT "Use single precision arithmetic in the Splash backend" OFF) +option(BUILD_SHARED_LIBS "Build poppler as a shared library" ON) if(WIN32) option(ENABLE_RELOCATABLE "Do not hardcode the poppler library location (on Windows)." ON) -else(WIN32) +else() set(ENABLE_RELOCATABLE OFF) -endif(WIN32) +endif() +option(EXTRA_WARN "Enable extra compile warnings" OFF) -set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)") -set(SHARE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share" CACHE STRING "Share directory name") +set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) set(TESTDATADIR "${CMAKE_SOURCE_DIR}/../test" CACHE STRING "Specify test data dir.") if(NOT (EXISTS ${TESTDATADIR} AND EXISTS ${TESTDATADIR}/test-poppler.c)) @@ -73,9 +88,9 @@ endif() if(WIN32) set(_default_fontconfiguration "win32") -else(WIN32) +else() set(_default_fontconfiguration "fontconfig") -endif(WIN32) +endif() set(FONT_CONFIGURATION "${_default_fontconfiguration}" CACHE STRING "The font configuration backend (win32|fontconfig).") string(TOLOWER "${FONT_CONFIGURATION}" font_configuration) set(WITH_FONTCONFIGURATION_WIN32 OFF) @@ -84,17 +99,19 @@ if(font_configuration STREQUAL "win32") set(WITH_FONTCONFIGURATION_WIN32 ON) elseif(font_configuration STREQUAL "fontconfig") set(WITH_FONTCONFIGURATION_FONTCONFIG ON) -else(font_configuration STREQUAL "win32") +else() message(FATAL_ERROR "Invalid font configuration setting: ${FONT_CONFIGURATION}") -endif(font_configuration STREQUAL "win32") +endif() + +if(CMAKE_USE_PTHREADS_INIT OR WIN32) + set(MULTITHREADED ON) +endif() # Enable these unconditionally. -set(MULTITHREADED ON) set(OPI_SUPPORT ON) set(TEXTOUT_WORD_LIST ON) # setting the minimum required versions for some components -set(QT4_MIN_VERSION "4.7.0") set(CAIRO_VERSION "1.10.0") set(GLIB_REQUIRED "2.41") @@ -102,31 +119,39 @@ macro_bool_to_01(ENABLE_SPLASH HAVE_SPLASH) find_package(Freetype REQUIRED) if(WITH_FONTCONFIGURATION_FONTCONFIG) find_package(Fontconfig REQUIRED) -endif(WITH_FONTCONFIGURATION_FONTCONFIG) +endif() macro_optional_find_package(JPEG) macro_optional_find_package(PNG) macro_optional_find_package(TIFF) macro_optional_find_package(NSS3) -if(JPEG_FOUND) - set(ENABLE_LIBJPEG ${JPEG_FOUND}) -endif(JPEG_FOUND) -macro_optional_find_package(Qt4) -if(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} VERSION_GREATER 2.8.7) +if(ENABLE_DCTDECODER STREQUAL "libjpeg") + if(JPEG_FOUND) + set(ENABLE_LIBJPEG ${JPEG_FOUND}) + else() + message(FATAL_ERROR "Install libjpeg before trying to build poppler. You can also decide to use the internal unmaintained DCT decoder or none at all.") + endif() + set(HAVE_DCT_DECODER ON) +elseif(ENABLE_DCTDECODER STREQUAL "unmaintained") + set(ENABLE_LIBJPEG OFF) + set(HAVE_DCT_DECODER ON) +elseif(ENABLE_DCTDECODER STREQUAL "none") + set(ENABLE_LIBJPEG OFF) + set(HAVE_DCT_DECODER OFF) +else() + message(FATAL_ERROR "Invalid ENABLE_DCTDECODER value.") +endif() + +if (ENABLE_QT5) find_package(Qt5Core) find_package(Qt5Gui) find_package(Qt5Xml) find_package(Qt5Widgets) find_package(Qt5Test) - if (Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Xml_FOUND AND Qt5Widgets_FOUND AND Qt5Test_FOUND) - set(QT5_FOUND true) - else () + if (NOT (Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Xml_FOUND AND Qt5Widgets_FOUND AND Qt5Test_FOUND)) message("-- Package Qt5Core or Qt5Gui or Qt5Xml or Qt5Widgets or Qt5Test not found") - set(QT5_FOUND false) + set(ENABLE_QT5 OFF) endif() -else(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} VERSION_GREATER 2.8.7) - set(QT5_FOUND false) - message("-- CMake >= 2.8.8 is needed to enable Qt5") -endif(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} VERSION_GREATER 2.8.7) +endif() macro_optional_find_package(Cairo ${CAIRO_VERSION}) if(CAIRO_FOUND) @@ -135,94 +160,85 @@ if(CAIRO_FOUND) set(CAIRO_REQ "cairo") set(POPPLER_GLIB_DISABLE_DEPRECATED "") set(POPPLER_GLIB_DISABLE_SINGLE_INCLUDES "") - macro_optional_find_package(GLIB) - if(GLIB_FOUND) - set(ENABLE_GLIB ON) + if(ENABLE_GLIB) + macro_optional_find_package(GLIB) + if(NOT GLIB_FOUND) + set(ENABLE_GLIB OFF) + endif() + endif() + if(ENABLE_GLIB) # Check for introspection macro_optional_find_package(GObjectIntrospection 0.9.12) set(HAVE_INTROSPECTION ${INTROSPECTION_FOUND}) set(POPPLER_GLIB_DISABLE_DEPRECATED "${POPPLER_GLIB_DISABLE_DEPRECATED} -DG_DISABLE_DEPRECATED") set(POPPLER_GLIB_DISABLE_SINGLE_INCLUDES "${POPPLER_GLIB_DISABLE_SINGLE_INCLUDES} -DG_DISABLE_SINGLE_INCLUDES") macro_optional_find_package(GTK) - endif(GLIB_FOUND) -else(CAIRO_FOUND) + endif() +else() set(CAIRO_FEATURE "#undef POPPLER_HAS_CAIRO") -endif(CAIRO_FOUND) + set(ENABLE_GLIB OFF) +endif() if(ENABLE_CPP) macro_optional_find_package(Iconv) set(ENABLE_CPP ${ICONV_FOUND}) set(HAVE_ICONV ${ICONV_FOUND}) -endif(ENABLE_CPP) +endif() 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) +endif() if(ENABLE_ZLIB_UNCOMPRESS AND NOT ENABLE_ZLIB) message("Warning: ENABLE_ZLIB_UNCOMPRESS requires ENABLE_ZLIB") set(ENABLE_ZLIB_UNCOMPRESS FALSE) -endif(ENABLE_ZLIB_UNCOMPRESS AND NOT ENABLE_ZLIB) -set(USE_OPENJPEG1 FALSE) -set(USE_OPENJPEG2 FALSE) +endif() set(WITH_OPENJPEG FALSE) -if(ENABLE_LIBOPENJPEG STREQUAL "auto") +if(ENABLE_LIBOPENJPEG STREQUAL "openjpeg2") find_package(LIBOPENJPEG2) - set(USE_OPENJPEG2 ${LIBOPENJPEG2_FOUND}) set(WITH_OPENJPEG ${LIBOPENJPEG2_FOUND}) if(NOT LIBOPENJPEG2_FOUND) - find_package(LIBOPENJPEG) - set(USE_OPENJPEG1 ${LIBOPENJPEG_FOUND}) - set(WITH_OPENJPEG ${LIBOPENJPEG_FOUND}) + message(FATAL_ERROR "Install libopenjpeg2 before trying to build poppler. You can also decide to use the internal unmaintained JPX decoder or none at all.") endif() -elseif(ENABLE_LIBOPENJPEG STREQUAL "openjpeg1") - find_package(LIBOPENJPEG) - set(USE_OPENJPEG1 ${LIBOPENJPEG_FOUND}) - set(WITH_OPENJPEG ${LIBOPENJPEG_FOUND}) -elseif(ENABLE_LIBOPENJPEG STREQUAL "openjpeg2") - find_package(LIBOPENJPEG2) - set(USE_OPENJPEG2 ${LIBOPENJPEG2_FOUND}) - set(WITH_OPENJPEG ${LIBOPENJPEG2_FOUND}) + set(HAVE_JPX_DECODER ON) +elseif(ENABLE_LIBOPENJPEG STREQUAL "unmaintained") + set(WITH_OPENJPEG OFF) + set(HAVE_JPX_DECODER ON) +elseif(ENABLE_LIBOPENJPEG STREQUAL "none") + set(WITH_OPENJPEG OFF) + set(HAVE_JPX_DECODER OFF) +else() + message(FATAL_ERROR "Invalid ENABLE_LIBOPENJPEG value: ${ENABLE_LIBOPENJPEG}") endif() set(ENABLE_LIBOPENJPEG "${WITH_OPENJPEG}") -if(ENABLE_CMS STREQUAL "auto") - find_package(LCMS2) - set(USE_CMS ${LCMS2_FOUND}) - if(NOT LCMS2_FOUND) - find_package(LCMS) - set(USE_CMS ${LCMS_FOUND}) - set(USE_LCMS1 ${LCMS_FOUND}) - endif(NOT LCMS2_FOUND) -elseif(ENABLE_CMS STREQUAL "lcms1") - find_package(LCMS) - set(USE_CMS ${LCMS_FOUND}) - set(USE_LCMS1 ${LCMS_FOUND}) -elseif(ENABLE_CMS STREQUAL "lcms2") +if(ENABLE_CMS STREQUAL "lcms2") find_package(LCMS2) set(USE_CMS ${LCMS2_FOUND}) +elseif(NOT ENABLE_CMS STREQUAL "none") + message(FATAL_ERROR "Invalid ENABLE_CMS value: ${ENABLE_CMS}") endif() if(ENABLE_LIBCURL) find_package(CURL) - include_directories(${CURL_INCLUDE_DIR}) - set(POPPLER_HAS_CURL_SUPPORT ON) -endif(ENABLE_LIBCURL) + if(CURL_FOUND) + include_directories(${CURL_INCLUDE_DIR}) + set(POPPLER_HAS_CURL_SUPPORT ON) + else() + set(ENABLE_LIBCURL OFF) + endif() +endif() -add_definitions(-DHAVE_CONFIG_H=1) if(MINGW) # Use mingw's ansi stdio extensions add_definitions(-D__USE_MINGW_ANSI_STDIO=1) -endif(MINGW) +endif() if(FONTCONFIG_FOUND) add_definitions(${FONTCONFIG_DEFINITIONS}) include_directories(${FONTCONFIG_INCLUDE_DIR}) -endif(FONTCONFIG_FOUND) +endif() if(WITH_FONTCONFIGURATION_WIN32) if(MINGW) # Set the minimum required Internet Explorer version to 5.0 add_definitions(-D_WIN32_IE=0x0500) - endif(MINGW) -endif(WITH_FONTCONFIGURATION_WIN32) + endif() +endif() include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/fofi @@ -232,43 +248,32 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR}/poppler ${FREETYPE_INCLUDE_DIRS} ) -set(HAVE_FREETYPE_H ON) -if(CMAKE_USE_PTHREADS_INIT) - set(HAVE_PTHREAD ON) -endif(CMAKE_USE_PTHREADS_INIT) if(ENABLE_ZLIB) include_directories(${ZLIB_INCLUDE_DIR}) -endif(ENABLE_ZLIB) +endif() if (NSS3_FOUND) add_definitions(${NSS3_CFLAGS}) set(ENABLE_NSS3 ON) -endif(NSS3_FOUND) +endif() if(JPEG_FOUND) include_directories(${JPEG_INCLUDE_DIR}) - set(ENABLE_LIBJPEG ON) -endif(JPEG_FOUND) +endif() if(PNG_FOUND) include_directories(${PNG_INCLUDE_DIR}) set(ENABLE_LIBPNG ON) -endif(PNG_FOUND) +endif() if(TIFF_FOUND) include_directories(${TIFF_INCLUDE_DIR}) set(ENABLE_LIBTIFF ON) -endif(TIFF_FOUND) -if(LIBOPENJPEG_FOUND) - include_directories(${LIBOPENJPEG_INCLUDE_DIR}) -endif(LIBOPENJPEG_FOUND) +endif() if(LIBOPENJPEG2_FOUND) include_directories(${LIBOPENJPEG2_INCLUDE_DIRS}) endif() -if(LCMS_FOUND) - include_directories(${LCMS_INCLUDE_DIR}) -endif(LCMS_FOUND) if(LCMS2_FOUND) include_directories(${LCMS2_INCLUDE_DIR}) -endif(LCMS2_FOUND) +endif() # Recent versions of poppler-data install a .pc file. # Use it to determine the encoding data path, if available. @@ -280,28 +285,19 @@ if(POPPLER_DATA_FOUND) OUTPUT_VARIABLE _output_var OUTPUT_STRIP_TRAILING_WHITESPACE) if(_result_var STREQUAL "0" AND NOT _output_var STREQUAL "") set(POPPLER_DATADIR "${_output_var}") - endif(_result_var STREQUAL "0" AND NOT _output_var STREQUAL "") -endif(POPPLER_DATA_FOUND) + endif() +endif() if(NOT DEFINED POPPLER_DATADIR) set(POPPLER_DATADIR "${CMAKE_INSTALL_PREFIX}/share/poppler") -endif(NOT DEFINED POPPLER_DATADIR) - -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") - set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS_NO} ${CMAKE_CXX_FLAGS}") -endif(_comp_warnings STREQUAL "no") -if(_comp_warnings STREQUAL "yes") +endif() + +if(EXTRA_WARN) set(CMAKE_C_FLAGS "-Wall ${CMAKE_C_FLAGS}") - set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS_YES} ${CMAKE_CXX_FLAGS}") -endif(_comp_warnings STREQUAL "yes") -if(_comp_warnings STREQUAL "kde") + set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS_EXTRA} ${CMAKE_CXX_FLAGS}") +else() set(CMAKE_C_FLAGS "-Wall ${CMAKE_C_FLAGS}") - set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS_KDE} ${CMAKE_CXX_FLAGS}") -endif(_comp_warnings STREQUAL "kde") + set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS} ${CMAKE_CXX_FLAGS}") +endif() include(ConfigureChecks.cmake) @@ -326,6 +322,7 @@ set(poppler_SRCS goo/gstrtod.cc goo/grandom.cc goo/glibc.cc + goo/glibc_strtok_r.cc fofi/FoFiBase.cc fofi/FoFiEncodings.cc fofi/FoFiTrueType.cc @@ -380,7 +377,6 @@ set(poppler_SRCS poppler/Stream.cc poppler/StructTreeRoot.cc poppler/StructElement.cc - poppler/strtok_r.cpp poppler/UnicodeMap.cc poppler/UnicodeTypeTable.cc poppler/UTF.cc @@ -415,58 +411,48 @@ if(ENABLE_SPLASH) 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) +endif() if(FONTCONFIG_FOUND) set(poppler_LIBS ${poppler_LIBS} ${FONTCONFIG_LIBRARIES}) -endif(FONTCONFIG_FOUND) +endif() if(JPEG_FOUND) set(poppler_SRCS ${poppler_SRCS} poppler/DCTStream.cc ) set(poppler_LIBS ${poppler_LIBS} ${JPEG_LIBRARIES}) -endif(JPEG_FOUND) +endif() if(ENABLE_ZLIB) set(poppler_SRCS ${poppler_SRCS} poppler/FlateEncoder.cc ) set(poppler_LIBS ${poppler_LIBS} ${ZLIB_LIBRARIES}) -endif(ENABLE_ZLIB) +endif() if(ENABLE_ZLIB_UNCOMPRESS) set(poppler_SRCS ${poppler_SRCS} poppler/FlateStream.cc ) -endif(ENABLE_ZLIB_UNCOMPRESS) +endif() if(ENABLE_LIBCURL) set(poppler_SRCS ${poppler_SRCS} poppler/CurlCachedFile.cc poppler/CurlPDFDocBuilder.cc ) set(poppler_LIBS ${poppler_LIBS} ${CURL_LIBRARIES}) -endif(ENABLE_LIBCURL) +endif() if (ENABLE_NSS3) set(poppler_SRCS ${poppler_SRCS} poppler/SignatureHandler.cc ) set(poppler_LIBS ${poppler_LIBS} ${NSS3_LIBRARIES}) -endif(ENABLE_NSS3) -if(LIBOPENJPEG_FOUND) - set(poppler_SRCS ${poppler_SRCS} - poppler/JPEG2000Stream.cc - ) - set(poppler_LIBS ${poppler_LIBS} ${LIBOPENJPEG_LIBRARIES}) - add_definitions(-DUSE_OPENJPEG1) -elseif (LIBOPENJPEG2_FOUND) +endif() +if (LIBOPENJPEG2_FOUND) set(poppler_SRCS ${poppler_SRCS} poppler/JPEG2000Stream.cc ) - add_definitions(-DUSE_OPENJPEG2) set(poppler_LIBS ${poppler_LIBS} ${LIBOPENJPEG2_LIBRARIES}) else () set(poppler_SRCS ${poppler_SRCS} @@ -474,37 +460,38 @@ else () ) endif() if(USE_CMS) - if(LCMS_FOUND) - set(poppler_LIBS ${poppler_LIBS} ${LCMS_LIBRARIES}) - endif(LCMS_FOUND) - if(LCMS2_FOUND) - set(poppler_LIBS ${poppler_LIBS} ${LCMS2_LIBRARIES}) - endif(LCMS2_FOUND) -endif(USE_CMS) + set(poppler_LIBS ${poppler_LIBS} ${LCMS2_LIBRARIES}) +endif() if(WIN32) + # use clean APIs + add_definitions(-DWIN32_LEAN_AND_MEAN) # gdi32 is needed under win32 set(poppler_LIBS ${poppler_LIBS} gdi32) -endif(WIN32) +endif() if(PNG_FOUND) set(poppler_LIBS ${poppler_LIBS} ${PNG_LIBRARIES}) -endif(PNG_FOUND) +endif() if(TIFF_FOUND) set(poppler_LIBS ${poppler_LIBS} ${TIFF_LIBRARIES}) -endif(TIFF_FOUND) -if(HAVE_PTHREAD) - set(poppler_LIBS ${poppler_LIBS} ${CMAKE_THREAD_LIBS_INIT}) endif() if(MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS) set(CMAKE_CXX_FLAGS "/Zc:wchar_t- ${CMAKE_CXX_FLAGS}") add_library(poppler STATIC ${poppler_SRCS}) -else(MSVC) -add_library(poppler SHARED ${poppler_SRCS}) -endif(MSVC) -set_target_properties(poppler PROPERTIES VERSION 66.0.0 SOVERSION 66) +else() +add_library(poppler ${poppler_SRCS}) +endif() +set_target_properties(poppler PROPERTIES VERSION 73.0.0 SOVERSION 73) +if(MINGW) + get_target_property(POPPLER_SOVERSION poppler SOVERSION) + set_target_properties(poppler PROPERTIES SUFFIX "-${POPPLER_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}") +endif() target_link_libraries(poppler LINK_PRIVATE ${poppler_LIBS}) -install(TARGETS poppler RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) +if(CMAKE_USE_PTHREADS_INIT) + target_link_libraries(poppler LINK_PRIVATE Threads::Threads) +endif() +install(TARGETS poppler RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) if(ENABLE_XPDF_HEADERS) install(FILES @@ -524,7 +511,6 @@ if(ENABLE_XPDF_HEADERS) poppler/FontEncodingTables.h poppler/FontInfo.h poppler/Form.h - poppler/Function.cc poppler/Function.h poppler/Gfx.h poppler/GfxFont.h @@ -562,6 +548,7 @@ if(ENABLE_XPDF_HEADERS) poppler/StructElement.h poppler/StructTreeRoot.h poppler/UnicodeMap.h + poppler/UnicodeMapFuncs.h poppler/UnicodeMapTables.h poppler/UnicodeTypeTable.h poppler/UnicodeCClassTables.h @@ -579,7 +566,6 @@ if(ENABLE_XPDF_HEADERS) poppler/StdinCachedFile.h poppler/StdinPDFDocBuilder.h poppler/UTF.h - poppler/UTF8.h poppler/XpdfPluginAPI.h poppler/Sound.h ${CMAKE_CURRENT_BINARY_DIR}/poppler/poppler-config.h @@ -603,17 +589,17 @@ if(ENABLE_XPDF_HEADERS) install(FILES goo/PNGWriter.h DESTINATION include/poppler/goo) - endif(PNG_FOUND) + endif() if(TIFF_FOUND) install(FILES goo/TiffWriter.h DESTINATION include/poppler/goo) - endif(TIFF_FOUND) + endif() if(JPEG_FOUND) install(FILES goo/JpegWriter.h DESTINATION include/poppler/goo) - endif(JPEG_FOUND) + endif() install(FILES fofi/FoFiBase.h fofi/FoFiEncodings.h @@ -627,12 +613,8 @@ if(ENABLE_XPDF_HEADERS) poppler/CurlCachedFile.h poppler/CurlPDFDocBuilder.h DESTINATION include/poppler) - endif(ENABLE_LIBCURL) - if(LIBOPENJPEG_FOUND) - install(FILES - poppler/JPEG2000Stream.h - DESTINATION include/poppler) - elseif(LIBOPENJPEG2_FOUND) + endif() + if(LIBOPENJPEG2_FOUND) install(FILES poppler/JPEG2000Stream.h DESTINATION include/poppler) @@ -663,66 +645,57 @@ if(ENABLE_XPDF_HEADERS) 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) + endif() +endif() if(ENABLE_UTILS) add_subdirectory(utils) -endif(ENABLE_UTILS) +endif() if(ENABLE_GLIB) add_subdirectory(glib) -endif(ENABLE_GLIB) +endif() add_subdirectory(test) -if(QT4_FOUND) - add_subdirectory(qt4) -endif(QT4_FOUND) -if(QT5_FOUND) +if(ENABLE_QT5) add_subdirectory(qt5) -endif(QT5_FOUND) +endif() if(ENABLE_CPP) add_subdirectory(cpp) -endif(ENABLE_CPP) +endif() set(PKG_CONFIG_VERSION_0_18 TRUE) if(PKG_CONFIG_EXECUTABLE) exec_program(${PKG_CONFIG_EXECUTABLE} ARGS --version RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _output_VAR) macro_ensure_version("0.18" "${_output_VAR}" PKG_CONFIG_VERSION_0_18) -endif(PKG_CONFIG_EXECUTABLE) +endif() if(PKG_CONFIG_VERSION_0_18) set(PC_REQUIRES "") set(PC_REQUIRES_PRIVATE "Requires.private: poppler = ${POPPLER_VERSION}") -else(PKG_CONFIG_VERSION_0_18) +else() set(PC_REQUIRES "poppler = ${POPPLER_VERSION}") set(PC_REQUIRES_PRIVATE "") -endif(PKG_CONFIG_VERSION_0_18) +endif() -poppler_create_install_pkgconfig(poppler.pc lib${LIB_SUFFIX}/pkgconfig) +poppler_create_install_pkgconfig(poppler.pc ${CMAKE_INSTALL_LIBDIR}/pkgconfig) if(ENABLE_SPLASH) - poppler_create_install_pkgconfig(poppler-splash.pc lib${LIB_SUFFIX}/pkgconfig) -endif(ENABLE_SPLASH) -if(QT4_FOUND) - poppler_create_install_pkgconfig(poppler-qt4.pc lib${LIB_SUFFIX}/pkgconfig) -endif(QT4_FOUND) -if(QT5_FOUND) - poppler_create_install_pkgconfig(poppler-qt5.pc lib${LIB_SUFFIX}/pkgconfig) -endif(QT5_FOUND) + poppler_create_install_pkgconfig(poppler-splash.pc ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +endif() +if(ENABLE_QT5) + poppler_create_install_pkgconfig(poppler-qt5.pc ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +endif() if(ENABLE_GLIB) - poppler_create_install_pkgconfig(poppler-glib.pc lib${LIB_SUFFIX}/pkgconfig) -endif(ENABLE_GLIB) + poppler_create_install_pkgconfig(poppler-glib.pc ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +endif() if(CAIRO_FOUND) - poppler_create_install_pkgconfig(poppler-cairo.pc lib${LIB_SUFFIX}/pkgconfig) -endif(CAIRO_FOUND) + poppler_create_install_pkgconfig(poppler-cairo.pc ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +endif() if(ENABLE_CPP) - poppler_create_install_pkgconfig(poppler-cpp.pc lib${LIB_SUFFIX}/pkgconfig) -endif(ENABLE_CPP) + poppler_create_install_pkgconfig(poppler-cpp.pc ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +endif() message("Building Poppler with support for:") @@ -732,12 +705,11 @@ if(SPLASH_CMYK) message(" with CMYK support") endif() show_end_message_yesno("cairo output" CAIRO_FOUND) -show_end_message_yesno("qt4 wrapper" QT4_FOUND) -show_end_message_yesno("qt5 wrapper" QT5_FOUND) +show_end_message_yesno("qt5 wrapper" ENABLE_QT5) show_end_message_yesno("glib wrapper" ENABLE_GLIB) show_end_message_yesno(" introspection" INTROSPECTION_FOUND) +show_end_message_yesno(" gtk-doc" ENABLE_GTK_DOC) show_end_message_yesno("cpp wrapper" ENABLE_CPP) -show_end_message("use gtk-doc" "not supported with this CMake build system") show_end_message_yesno("use libjpeg" ENABLE_LIBJPEG) show_end_message_yesno("use libpng" ENABLE_LIBPNG) show_end_message_yesno("use libtiff" ENABLE_LIBTIFF) @@ -745,39 +717,45 @@ show_end_message_yesno("use zlib compress" ENABLE_ZLIB) show_end_message_yesno("use zlib uncompress" ENABLE_ZLIB_UNCOMPRESS) show_end_message_yesno("use nss3" ENABLE_NSS3) show_end_message_yesno("use curl" ENABLE_LIBCURL) -show_end_message_yesno("use libopenjpeg" WITH_OPENJPEG) -if(USE_OPENJPEG1) - message(" with openjpeg1") -endif() -if(USE_OPENJPEG2) - message(" with openjpeg2") -endif() -show_end_message_yesno("use cms" USE_CMS) -if(LCMS_FOUND) - message(" with lcms1") -endif(LCMS_FOUND) -if(LCMS2_FOUND) - message(" with lcms2") -endif(LCMS2_FOUND) +show_end_message_yesno("use libopenjpeg2" WITH_OPENJPEG) +show_end_message_yesno("use lcms2" USE_CMS) show_end_message_yesno("command line utils" ENABLE_UTILS) show_end_message("test data dir" ${TESTDATADIR}) if(NOT ENABLE_SPLASH AND NOT CAIRO_FOUND) message("Warning: There is no rendering backend enabled") -endif(NOT ENABLE_SPLASH AND NOT CAIRO_FOUND) +endif() if(USE_FIXEDPOINT AND USE_FLOAT) message("Warning: Single precision and fixed point options should not be enabled at the same time") -endif(USE_FIXEDPOINT AND USE_FLOAT) +endif() -if(NOT ENABLE_LIBJPEG) +if(NOT ENABLE_LIBJPEG AND HAVE_DCT_DECODER) message("Warning: Using libjpeg is recommended. The internal DCT decoder is unmaintained.") -endif(NOT ENABLE_LIBJPEG) +endif() + +if(NOT HAVE_DCT_DECODER) + message("Warning: You're not compiling any DCT decoder. Some files will fail to display properly.") +endif() if(ENABLE_ZLIB_UNCOMPRESS) message("Warning: Using zlib is not totally safe") -endif(ENABLE_ZLIB_UNCOMPRESS) +endif() -if(NOT WITH_OPENJPEG) +if(NOT WITH_OPENJPEG AND HAVE_JPX_DECODER) message("Warning: Using libopenjpeg2 is recommended. The internal JPX decoder is unmaintained.") -endif(NOT WITH_OPENJPEG) +endif() + +if(NOT HAVE_JPX_DECODER) + message("Warning: You're not compiling any JPX decoder. Some files will fail to display properly.") +endif() + +set(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${POPPLER_VERSION}) +add_custom_target(dist + COMMAND + COMMAND git log --stat | fmt --split-only > ${CMAKE_BINARY_DIR}/ChangeLog + COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar + COMMAND tar -C ${CMAKE_BINARY_DIR} -rf ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar ChangeLog --transform='s,,${ARCHIVE_NAME}/,' + COMMAND tar -C ${CMAKE_BINARY_DIR} -rf ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar glib/reference/html --transform='s,,${ARCHIVE_NAME}/,' + COMMAND xz -9 ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) |