summaryrefslogtreecommitdiff
path: root/Build/source/libs/poppler/poppler-src/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/poppler/poppler-src/CMakeLists.txt')
-rw-r--r--Build/source/libs/poppler/poppler-src/CMakeLists.txt410
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})