~naesten/tex-live/trunk

« back to all changes in this revision

Viewing changes to libs/poppler/poppler-src/CMakeLists.txt

  • Committer: karl
  • Date: 2018-01-09 18:53:05 UTC
  • Revision ID: svn-v4:c570f23f-e606-0410-a88d-b1316a301751:trunk/Build/source:46257
poppler 0.62.0, requiring C++11; luatex not updated yet

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
project(poppler)
2
2
 
3
 
cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
 
3
cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
4
4
 
5
5
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
6
6
 
10
10
find_package(PkgConfig)
11
11
include(MacroEnsureVersion)
12
12
include(MacroBoolTo01)
13
 
find_package(Threads)
 
13
if (WIN32)
 
14
  message("-- Using win32 threads")
 
15
else()
 
16
  set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
 
17
  set(THREADS_PREFER_PTHREAD_FLAG TRUE)
 
18
  find_package(Threads)
 
19
endif()
14
20
include(TestBigEndian)
15
21
test_big_endian(WORDS_BIGENDIAN)
16
22
include(CheckFileOffsetBits)
17
23
CHECK_FILE_OFFSET_BITS()
18
24
 
 
25
include(GNUInstallDirs)
 
26
 
19
27
find_package (ECM 1.6.0 QUIET NO_MODULE)
20
28
if (ECM_FOUND)
21
29
    include("${ECM_MODULE_DIR}/ECMEnableSanitizers.cmake")
22
30
endif()
23
31
 
24
32
set(POPPLER_MAJOR_VERSION "0")
25
 
set(POPPLER_MINOR_VERSION "52")
 
33
set(POPPLER_MINOR_VERSION "62")
26
34
set(POPPLER_MICRO_VERSION "0")
27
35
set(POPPLER_VERSION "${POPPLER_MAJOR_VERSION}.${POPPLER_MINOR_VERSION}.${POPPLER_MICRO_VERSION}")
28
36
 
 
37
set (CMAKE_CXX_STANDARD 11)
 
38
set (CMAKE_CXX_EXTENSIONS OFF)
 
39
 
29
40
# command line switches
30
41
option(ENABLE_XPDF_HEADERS "Install unsupported xpdf headers." OFF)
31
42
option(BUILD_GTK_TESTS "Whether compile the GTK+ test programs." ON)
32
 
option(BUILD_QT4_TESTS "Whether compile the Qt4 test programs." ON)
33
43
option(BUILD_QT5_TESTS "Whether compile the Qt5 test programs." ON)
34
44
option(BUILD_CPP_TESTS "Whether compile the CPP test programs." ON)
35
45
option(ENABLE_SPLASH "Build the Splash graphics backend." ON)
36
46
option(ENABLE_UTILS "Compile poppler command line utils." ON)
37
47
option(ENABLE_CPP "Compile poppler cpp wrapper." ON)
38
 
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.")
39
 
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.")
40
 
option(ENABLE_LIBCURL "Build libcurl based HTTP support." OFF)
 
48
option(ENABLE_GLIB "Compile poppler glib wrapper." ON)
 
49
option(ENABLE_GTK_DOC "Whether to generate glib API documentation." OFF)
 
50
option(ENABLE_QT5 "Compile poppler qt5 wrapper." ON)
 
51
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")
 
52
set(ENABLE_CMS "lcms2" CACHE STRING "Use color management system. Possible values: lcms2, none. 'none' disables color management system.")
 
53
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")
 
54
option(ENABLE_LIBCURL "Build libcurl based HTTP support." ON)
41
55
option(ENABLE_ZLIB "Build with zlib." ON)
42
56
option(ENABLE_ZLIB_UNCOMPRESS "Use zlib to uncompress flate streams (not totally safe)." OFF)
43
57
option(SPLASH_CMYK "Include support for CMYK rasterization." OFF)
44
58
option(USE_FIXEDPOINT "Use fixed point arithmetic in the Splash backend" OFF)
45
59
option(USE_FLOAT "Use single precision arithmetic in the Splash backend" OFF)
 
60
option(BUILD_SHARED_LIBS "Build poppler as a shared library" ON)
46
61
if(WIN32)
47
62
  option(ENABLE_RELOCATABLE "Do not hardcode the poppler library location (on Windows)." ON)
48
 
else(WIN32)
 
63
else()
49
64
  set(ENABLE_RELOCATABLE OFF)
50
 
endif(WIN32)
 
65
endif()
 
66
option(EXTRA_WARN "Enable extra compile warnings" OFF)
51
67
 
52
 
set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)")
53
 
set(SHARE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share" CACHE STRING "Share directory name")
 
68
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
54
69
 
55
70
set(TESTDATADIR "${CMAKE_SOURCE_DIR}/../test" CACHE STRING "Specify test data dir.")
56
71
if(NOT (EXISTS ${TESTDATADIR} AND EXISTS ${TESTDATADIR}/test-poppler.c))
73
88
 
74
89
if(WIN32)
75
90
  set(_default_fontconfiguration "win32")
76
 
else(WIN32)
 
91
else()
77
92
  set(_default_fontconfiguration "fontconfig")
78
 
endif(WIN32)
 
93
endif()
79
94
set(FONT_CONFIGURATION "${_default_fontconfiguration}" CACHE STRING "The font configuration backend (win32|fontconfig).")
80
95
string(TOLOWER "${FONT_CONFIGURATION}" font_configuration)
81
96
set(WITH_FONTCONFIGURATION_WIN32 OFF)
84
99
  set(WITH_FONTCONFIGURATION_WIN32 ON)
85
100
elseif(font_configuration STREQUAL "fontconfig")
86
101
  set(WITH_FONTCONFIGURATION_FONTCONFIG ON)
87
 
else(font_configuration STREQUAL "win32")
 
102
else()
88
103
  message(FATAL_ERROR "Invalid font configuration setting: ${FONT_CONFIGURATION}")
89
 
endif(font_configuration STREQUAL "win32")
 
104
endif()
 
105
 
 
106
if(CMAKE_USE_PTHREADS_INIT OR WIN32)
 
107
  set(MULTITHREADED ON)
 
108
endif()
90
109
 
91
110
# Enable these unconditionally.
92
 
set(MULTITHREADED ON)
93
111
set(OPI_SUPPORT ON)
94
112
set(TEXTOUT_WORD_LIST ON)
95
113
 
96
114
# setting the minimum required versions for some components
97
 
set(QT4_MIN_VERSION "4.7.0")
98
115
set(CAIRO_VERSION "1.10.0")
99
116
set(GLIB_REQUIRED "2.41")
100
117
 
102
119
find_package(Freetype REQUIRED)
103
120
if(WITH_FONTCONFIGURATION_FONTCONFIG)
104
121
  find_package(Fontconfig REQUIRED)
105
 
endif(WITH_FONTCONFIGURATION_FONTCONFIG)
 
122
endif()
106
123
macro_optional_find_package(JPEG)
107
124
macro_optional_find_package(PNG)
108
125
macro_optional_find_package(TIFF)
109
126
macro_optional_find_package(NSS3)
110
 
if(JPEG_FOUND)
111
 
  set(ENABLE_LIBJPEG ${JPEG_FOUND})
112
 
endif(JPEG_FOUND)
113
 
macro_optional_find_package(Qt4)
114
 
if(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} VERSION_GREATER 2.8.7)
 
127
if(ENABLE_DCTDECODER STREQUAL "libjpeg")
 
128
  if(JPEG_FOUND)
 
129
    set(ENABLE_LIBJPEG ${JPEG_FOUND})
 
130
  else()
 
131
    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.")
 
132
  endif()
 
133
  set(HAVE_DCT_DECODER ON)
 
134
elseif(ENABLE_DCTDECODER STREQUAL "unmaintained")
 
135
  set(ENABLE_LIBJPEG OFF)
 
136
  set(HAVE_DCT_DECODER ON)
 
137
elseif(ENABLE_DCTDECODER STREQUAL "none")
 
138
  set(ENABLE_LIBJPEG OFF)
 
139
  set(HAVE_DCT_DECODER OFF)
 
140
else()
 
141
  message(FATAL_ERROR "Invalid ENABLE_DCTDECODER value.")
 
142
endif()
 
143
 
 
144
if (ENABLE_QT5)
115
145
  find_package(Qt5Core)
116
146
  find_package(Qt5Gui)
117
147
  find_package(Qt5Xml)
118
148
  find_package(Qt5Widgets)
119
149
  find_package(Qt5Test)
120
 
  if (Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Xml_FOUND AND Qt5Widgets_FOUND AND Qt5Test_FOUND)
121
 
    set(QT5_FOUND true)
122
 
  else ()
 
150
  if (NOT (Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Xml_FOUND AND Qt5Widgets_FOUND AND Qt5Test_FOUND))
123
151
    message("-- Package Qt5Core or Qt5Gui or Qt5Xml or Qt5Widgets or Qt5Test not found")
124
 
    set(QT5_FOUND false)
 
152
    set(ENABLE_QT5 OFF)
125
153
  endif()
126
 
else(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} VERSION_GREATER 2.8.7)
127
 
  set(QT5_FOUND false)
128
 
  message("-- CMake >= 2.8.8 is needed to enable Qt5")
129
 
endif(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} VERSION_GREATER 2.8.7)
 
154
endif()
130
155
 
131
156
macro_optional_find_package(Cairo ${CAIRO_VERSION})
132
157
if(CAIRO_FOUND)
135
160
  set(CAIRO_REQ "cairo")
136
161
  set(POPPLER_GLIB_DISABLE_DEPRECATED "")
137
162
  set(POPPLER_GLIB_DISABLE_SINGLE_INCLUDES "")
138
 
  macro_optional_find_package(GLIB)
139
 
  if(GLIB_FOUND)
140
 
    set(ENABLE_GLIB ON)
 
163
  if(ENABLE_GLIB)
 
164
    macro_optional_find_package(GLIB)
 
165
    if(NOT GLIB_FOUND)
 
166
      set(ENABLE_GLIB OFF)
 
167
    endif()
 
168
  endif()
 
169
  if(ENABLE_GLIB)
141
170
    # Check for introspection
142
171
    macro_optional_find_package(GObjectIntrospection 0.9.12)
143
172
    set(HAVE_INTROSPECTION ${INTROSPECTION_FOUND})
144
173
    set(POPPLER_GLIB_DISABLE_DEPRECATED "${POPPLER_GLIB_DISABLE_DEPRECATED} -DG_DISABLE_DEPRECATED")
145
174
    set(POPPLER_GLIB_DISABLE_SINGLE_INCLUDES "${POPPLER_GLIB_DISABLE_SINGLE_INCLUDES} -DG_DISABLE_SINGLE_INCLUDES")
146
175
    macro_optional_find_package(GTK)
147
 
  endif(GLIB_FOUND)
148
 
else(CAIRO_FOUND)
 
176
  endif()
 
177
else()
149
178
  set(CAIRO_FEATURE "#undef POPPLER_HAS_CAIRO")
150
 
endif(CAIRO_FOUND)
 
179
  set(ENABLE_GLIB OFF)
 
180
endif()
151
181
if(ENABLE_CPP)
152
182
  macro_optional_find_package(Iconv)
153
183
  set(ENABLE_CPP ${ICONV_FOUND})
154
184
  set(HAVE_ICONV ${ICONV_FOUND})
155
 
endif(ENABLE_CPP)
 
185
endif()
156
186
if(ENABLE_ZLIB)
157
187
  find_package(ZLIB)
158
 
  if(ZLIB_FOUND)
159
 
    set(HAVE_LIBZ ${ZLIB_FOUND})
160
 
  endif(ZLIB_FOUND)
161
188
  set(ENABLE_ZLIB ${ZLIB_FOUND})
162
 
endif(ENABLE_ZLIB)
 
189
endif()
163
190
if(ENABLE_ZLIB_UNCOMPRESS AND NOT ENABLE_ZLIB)
164
191
  message("Warning: ENABLE_ZLIB_UNCOMPRESS requires ENABLE_ZLIB")
165
192
  set(ENABLE_ZLIB_UNCOMPRESS FALSE)
166
 
endif(ENABLE_ZLIB_UNCOMPRESS AND NOT ENABLE_ZLIB)
167
 
set(USE_OPENJPEG1 FALSE)
168
 
set(USE_OPENJPEG2 FALSE)
 
193
endif()
169
194
set(WITH_OPENJPEG FALSE)
170
 
if(ENABLE_LIBOPENJPEG STREQUAL "auto")
 
195
if(ENABLE_LIBOPENJPEG STREQUAL "openjpeg2")
171
196
  find_package(LIBOPENJPEG2)
172
 
  set(USE_OPENJPEG2 ${LIBOPENJPEG2_FOUND})
173
197
  set(WITH_OPENJPEG ${LIBOPENJPEG2_FOUND})
174
198
  if(NOT LIBOPENJPEG2_FOUND)
175
 
    find_package(LIBOPENJPEG)
176
 
    set(USE_OPENJPEG1 ${LIBOPENJPEG_FOUND})
177
 
    set(WITH_OPENJPEG ${LIBOPENJPEG_FOUND})  
 
199
    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.")
178
200
  endif()
179
 
elseif(ENABLE_LIBOPENJPEG STREQUAL "openjpeg1")
180
 
  find_package(LIBOPENJPEG)
181
 
  set(USE_OPENJPEG1 ${LIBOPENJPEG_FOUND})
182
 
  set(WITH_OPENJPEG ${LIBOPENJPEG_FOUND})
183
 
elseif(ENABLE_LIBOPENJPEG STREQUAL "openjpeg2")
184
 
  find_package(LIBOPENJPEG2)
185
 
  set(USE_OPENJPEG2 ${LIBOPENJPEG2_FOUND})
186
 
  set(WITH_OPENJPEG ${LIBOPENJPEG2_FOUND})
 
201
  set(HAVE_JPX_DECODER ON)
 
202
elseif(ENABLE_LIBOPENJPEG STREQUAL "unmaintained")
 
203
  set(WITH_OPENJPEG OFF)
 
204
  set(HAVE_JPX_DECODER ON)
 
205
elseif(ENABLE_LIBOPENJPEG STREQUAL "none")
 
206
  set(WITH_OPENJPEG OFF)
 
207
  set(HAVE_JPX_DECODER OFF)
 
208
else()
 
209
  message(FATAL_ERROR "Invalid ENABLE_LIBOPENJPEG value: ${ENABLE_LIBOPENJPEG}")
187
210
endif()
188
211
set(ENABLE_LIBOPENJPEG "${WITH_OPENJPEG}")
189
 
if(ENABLE_CMS STREQUAL "auto")
190
 
  find_package(LCMS2)
191
 
  set(USE_CMS ${LCMS2_FOUND})
192
 
  if(NOT LCMS2_FOUND)
193
 
    find_package(LCMS)
194
 
    set(USE_CMS ${LCMS_FOUND})
195
 
    set(USE_LCMS1 ${LCMS_FOUND})
196
 
  endif(NOT LCMS2_FOUND)
197
 
elseif(ENABLE_CMS STREQUAL "lcms1")
198
 
  find_package(LCMS)
199
 
  set(USE_CMS ${LCMS_FOUND})
200
 
  set(USE_LCMS1 ${LCMS_FOUND})
201
 
elseif(ENABLE_CMS STREQUAL "lcms2")
202
 
  find_package(LCMS2)
203
 
  set(USE_CMS ${LCMS2_FOUND})
 
212
if(ENABLE_CMS STREQUAL "lcms2")
 
213
  find_package(LCMS2)
 
214
  set(USE_CMS ${LCMS2_FOUND})
 
215
elseif(NOT ENABLE_CMS STREQUAL "none")
 
216
  message(FATAL_ERROR "Invalid ENABLE_CMS value: ${ENABLE_CMS}")
204
217
endif()
205
218
if(ENABLE_LIBCURL)
206
219
  find_package(CURL)
207
 
  include_directories(${CURL_INCLUDE_DIR})
208
 
  set(POPPLER_HAS_CURL_SUPPORT ON)
209
 
endif(ENABLE_LIBCURL)
 
220
  if(CURL_FOUND)
 
221
    include_directories(${CURL_INCLUDE_DIR})
 
222
    set(POPPLER_HAS_CURL_SUPPORT ON)
 
223
  else()
 
224
    set(ENABLE_LIBCURL OFF)
 
225
  endif()
 
226
endif()
210
227
 
211
 
add_definitions(-DHAVE_CONFIG_H=1)
212
228
if(MINGW)
213
229
  # Use mingw's ansi stdio extensions
214
230
  add_definitions(-D__USE_MINGW_ANSI_STDIO=1)
215
 
endif(MINGW)
 
231
endif()
216
232
if(FONTCONFIG_FOUND)
217
233
  add_definitions(${FONTCONFIG_DEFINITIONS})
218
234
  include_directories(${FONTCONFIG_INCLUDE_DIR})
219
 
endif(FONTCONFIG_FOUND)
 
235
endif()
220
236
if(WITH_FONTCONFIGURATION_WIN32)
221
237
  if(MINGW)
222
238
    # Set the minimum required Internet Explorer version to 5.0
223
239
    add_definitions(-D_WIN32_IE=0x0500)
224
 
  endif(MINGW)
225
 
endif(WITH_FONTCONFIGURATION_WIN32)
 
240
  endif()
 
241
endif()
226
242
include_directories(
227
243
  ${CMAKE_CURRENT_SOURCE_DIR}
228
244
  ${CMAKE_CURRENT_SOURCE_DIR}/fofi
232
248
  ${CMAKE_CURRENT_BINARY_DIR}/poppler
233
249
  ${FREETYPE_INCLUDE_DIRS}
234
250
)
235
 
set(HAVE_FREETYPE_H ON)
236
 
if(CMAKE_USE_PTHREADS_INIT)
237
 
  set(HAVE_PTHREAD ON)
238
 
endif(CMAKE_USE_PTHREADS_INIT)
239
251
 
240
252
if(ENABLE_ZLIB)
241
253
  include_directories(${ZLIB_INCLUDE_DIR})
242
 
endif(ENABLE_ZLIB)
 
254
endif()
243
255
 
244
256
if (NSS3_FOUND)
245
257
  add_definitions(${NSS3_CFLAGS})
246
258
  set(ENABLE_NSS3 ON)
247
 
endif(NSS3_FOUND)
 
259
endif()
248
260
if(JPEG_FOUND)
249
261
  include_directories(${JPEG_INCLUDE_DIR})
250
 
  set(ENABLE_LIBJPEG ON)
251
 
endif(JPEG_FOUND)
 
262
endif()
252
263
if(PNG_FOUND)
253
264
  include_directories(${PNG_INCLUDE_DIR})
254
265
  set(ENABLE_LIBPNG ON)
255
 
endif(PNG_FOUND)
 
266
endif()
256
267
if(TIFF_FOUND)
257
268
  include_directories(${TIFF_INCLUDE_DIR})
258
269
  set(ENABLE_LIBTIFF ON)
259
 
endif(TIFF_FOUND)
260
 
if(LIBOPENJPEG_FOUND)
261
 
  include_directories(${LIBOPENJPEG_INCLUDE_DIR})
262
 
endif(LIBOPENJPEG_FOUND)
 
270
endif()
263
271
if(LIBOPENJPEG2_FOUND)
264
272
  include_directories(${LIBOPENJPEG2_INCLUDE_DIRS})
265
273
endif()
266
 
if(LCMS_FOUND)
267
 
  include_directories(${LCMS_INCLUDE_DIR})
268
 
endif(LCMS_FOUND)
269
274
if(LCMS2_FOUND)
270
275
  include_directories(${LCMS2_INCLUDE_DIR})
271
 
endif(LCMS2_FOUND)
 
276
endif()
272
277
 
273
278
# Recent versions of poppler-data install a .pc file.
274
279
# Use it to determine the encoding data path, if available.
280
285
                  OUTPUT_VARIABLE _output_var OUTPUT_STRIP_TRAILING_WHITESPACE)
281
286
  if(_result_var STREQUAL "0" AND NOT _output_var STREQUAL "")
282
287
    set(POPPLER_DATADIR "${_output_var}")
283
 
  endif(_result_var STREQUAL "0" AND NOT _output_var STREQUAL "")
284
 
endif(POPPLER_DATA_FOUND)
 
288
  endif()
 
289
endif()
285
290
if(NOT DEFINED POPPLER_DATADIR)
286
291
  set(POPPLER_DATADIR "${CMAKE_INSTALL_PREFIX}/share/poppler")
287
 
endif(NOT DEFINED POPPLER_DATADIR)
 
292
endif()
288
293
 
289
 
if(DEFINED COMPILE_WARNINGS)
290
 
else(DEFINED COMPILE_WARNINGS)
291
 
  set(COMPILE_WARNINGS "yes")
292
 
endif(DEFINED COMPILE_WARNINGS)
293
 
string(TOLOWER "${COMPILE_WARNINGS}" _comp_warnings)
294
 
if(_comp_warnings STREQUAL "no")
295
 
  set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS_NO} ${CMAKE_CXX_FLAGS}")
296
 
endif(_comp_warnings STREQUAL "no")
297
 
if(_comp_warnings STREQUAL "yes")
298
 
  set(CMAKE_C_FLAGS "-Wall ${CMAKE_C_FLAGS}")
299
 
  set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS_YES} ${CMAKE_CXX_FLAGS}")
300
 
endif(_comp_warnings STREQUAL "yes")
301
 
if(_comp_warnings STREQUAL "kde")
302
 
  set(CMAKE_C_FLAGS "-Wall ${CMAKE_C_FLAGS}")
303
 
  set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS_KDE} ${CMAKE_CXX_FLAGS}")
304
 
endif(_comp_warnings STREQUAL "kde")
 
294
if(EXTRA_WARN)
 
295
  set(CMAKE_C_FLAGS "-Wall ${CMAKE_C_FLAGS}")
 
296
  set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS_EXTRA} ${CMAKE_CXX_FLAGS}")
 
297
else()
 
298
  set(CMAKE_C_FLAGS "-Wall ${CMAKE_C_FLAGS}")
 
299
  set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS} ${CMAKE_CXX_FLAGS}")
 
300
endif()
305
301
 
306
302
 
307
303
include(ConfigureChecks.cmake)
326
322
  goo/gstrtod.cc
327
323
  goo/grandom.cc
328
324
  goo/glibc.cc
 
325
  goo/glibc_strtok_r.cc
329
326
  fofi/FoFiBase.cc
330
327
  fofi/FoFiEncodings.cc
331
328
  fofi/FoFiTrueType.cc
380
377
  poppler/Stream.cc
381
378
  poppler/StructTreeRoot.cc
382
379
  poppler/StructElement.cc
383
 
  poppler/strtok_r.cpp
384
380
  poppler/UnicodeMap.cc
385
381
  poppler/UnicodeTypeTable.cc
386
382
  poppler/UTF.cc
415
411
    splash/SplashPattern.cc
416
412
    splash/SplashScreen.cc
417
413
    splash/SplashState.cc
418
 
    splash/SplashT1Font.cc
419
 
    splash/SplashT1FontEngine.cc
420
 
    splash/SplashT1FontFile.cc
421
414
    splash/SplashXPath.cc
422
415
    splash/SplashXPathScanner.cc
423
416
  )
424
 
endif(ENABLE_SPLASH)
 
417
endif()
425
418
if(FONTCONFIG_FOUND)
426
419
  set(poppler_LIBS ${poppler_LIBS} ${FONTCONFIG_LIBRARIES})
427
 
endif(FONTCONFIG_FOUND)
 
420
endif()
428
421
 
429
422
if(JPEG_FOUND)
430
423
  set(poppler_SRCS ${poppler_SRCS}
431
424
    poppler/DCTStream.cc
432
425
  )
433
426
  set(poppler_LIBS ${poppler_LIBS} ${JPEG_LIBRARIES})
434
 
endif(JPEG_FOUND)
 
427
endif()
435
428
if(ENABLE_ZLIB)
436
429
  set(poppler_SRCS ${poppler_SRCS}
437
430
    poppler/FlateEncoder.cc
438
431
  )
439
432
  set(poppler_LIBS ${poppler_LIBS} ${ZLIB_LIBRARIES})
440
 
endif(ENABLE_ZLIB)
 
433
endif()
441
434
if(ENABLE_ZLIB_UNCOMPRESS)
442
435
  set(poppler_SRCS ${poppler_SRCS}
443
436
    poppler/FlateStream.cc
444
437
  )
445
 
endif(ENABLE_ZLIB_UNCOMPRESS)
 
438
endif()
446
439
if(ENABLE_LIBCURL)
447
440
  set(poppler_SRCS ${poppler_SRCS}
448
441
    poppler/CurlCachedFile.cc
449
442
    poppler/CurlPDFDocBuilder.cc
450
443
  )
451
444
  set(poppler_LIBS ${poppler_LIBS} ${CURL_LIBRARIES})
452
 
endif(ENABLE_LIBCURL)
 
445
endif()
453
446
if (ENABLE_NSS3)
454
447
  set(poppler_SRCS ${poppler_SRCS}
455
448
    poppler/SignatureHandler.cc
456
449
  )
457
450
  set(poppler_LIBS ${poppler_LIBS} ${NSS3_LIBRARIES})
458
 
endif(ENABLE_NSS3)  
459
 
if(LIBOPENJPEG_FOUND)
460
 
  set(poppler_SRCS ${poppler_SRCS}
461
 
    poppler/JPEG2000Stream.cc
462
 
  )
463
 
  set(poppler_LIBS ${poppler_LIBS} ${LIBOPENJPEG_LIBRARIES})
464
 
  add_definitions(-DUSE_OPENJPEG1)
465
 
elseif (LIBOPENJPEG2_FOUND)
466
 
  set(poppler_SRCS ${poppler_SRCS}
467
 
    poppler/JPEG2000Stream.cc
468
 
  )
469
 
  add_definitions(-DUSE_OPENJPEG2)
 
451
endif()
 
452
if (LIBOPENJPEG2_FOUND)
 
453
  set(poppler_SRCS ${poppler_SRCS}
 
454
    poppler/JPEG2000Stream.cc
 
455
  )
470
456
  set(poppler_LIBS ${poppler_LIBS} ${LIBOPENJPEG2_LIBRARIES})
471
457
else ()
472
458
  set(poppler_SRCS ${poppler_SRCS}
474
460
  )
475
461
endif()
476
462
if(USE_CMS)
477
 
  if(LCMS_FOUND)
478
 
    set(poppler_LIBS ${poppler_LIBS} ${LCMS_LIBRARIES})
479
 
  endif(LCMS_FOUND)
480
 
  if(LCMS2_FOUND)
481
 
    set(poppler_LIBS ${poppler_LIBS} ${LCMS2_LIBRARIES})
482
 
  endif(LCMS2_FOUND)
483
 
endif(USE_CMS)
 
463
  set(poppler_LIBS ${poppler_LIBS} ${LCMS2_LIBRARIES})
 
464
endif()
484
465
if(WIN32)
 
466
  # use clean APIs
 
467
  add_definitions(-DWIN32_LEAN_AND_MEAN)
485
468
  # gdi32 is needed under win32
486
469
  set(poppler_LIBS ${poppler_LIBS} gdi32)
487
 
endif(WIN32)
 
470
endif()
488
471
if(PNG_FOUND)
489
472
  set(poppler_LIBS ${poppler_LIBS} ${PNG_LIBRARIES})
490
 
endif(PNG_FOUND)
 
473
endif()
491
474
if(TIFF_FOUND)
492
475
  set(poppler_LIBS ${poppler_LIBS} ${TIFF_LIBRARIES})
493
 
endif(TIFF_FOUND)
494
 
if(HAVE_PTHREAD)
495
 
  set(poppler_LIBS ${poppler_LIBS} ${CMAKE_THREAD_LIBS_INIT})
496
476
endif()
497
477
 
498
478
if(MSVC)
499
479
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
500
480
set(CMAKE_CXX_FLAGS "/Zc:wchar_t- ${CMAKE_CXX_FLAGS}")
501
481
add_library(poppler STATIC ${poppler_SRCS})
502
 
else(MSVC)
503
 
add_library(poppler SHARED ${poppler_SRCS})
504
 
endif(MSVC)
505
 
set_target_properties(poppler PROPERTIES VERSION 66.0.0 SOVERSION 66)
 
482
else()
 
483
add_library(poppler ${poppler_SRCS})
 
484
endif()
 
485
set_target_properties(poppler PROPERTIES VERSION 73.0.0 SOVERSION 73)
 
486
if(MINGW)
 
487
    get_target_property(POPPLER_SOVERSION poppler SOVERSION)
 
488
    set_target_properties(poppler PROPERTIES SUFFIX "-${POPPLER_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}")
 
489
endif()
506
490
target_link_libraries(poppler LINK_PRIVATE ${poppler_LIBS})
507
 
install(TARGETS poppler RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX})
 
491
if(CMAKE_USE_PTHREADS_INIT)
 
492
   target_link_libraries(poppler LINK_PRIVATE Threads::Threads)
 
493
endif()
 
494
install(TARGETS poppler RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
508
495
 
509
496
if(ENABLE_XPDF_HEADERS)
510
497
  install(FILES
524
511
    poppler/FontEncodingTables.h
525
512
    poppler/FontInfo.h
526
513
    poppler/Form.h
527
 
    poppler/Function.cc
528
514
    poppler/Function.h
529
515
    poppler/Gfx.h
530
516
    poppler/GfxFont.h
562
548
    poppler/StructElement.h
563
549
    poppler/StructTreeRoot.h
564
550
    poppler/UnicodeMap.h
 
551
    poppler/UnicodeMapFuncs.h
565
552
    poppler/UnicodeMapTables.h
566
553
    poppler/UnicodeTypeTable.h
567
554
    poppler/UnicodeCClassTables.h
579
566
    poppler/StdinCachedFile.h
580
567
    poppler/StdinPDFDocBuilder.h
581
568
    poppler/UTF.h
582
 
    poppler/UTF8.h
583
569
    poppler/XpdfPluginAPI.h
584
570
    poppler/Sound.h
585
571
    ${CMAKE_CURRENT_BINARY_DIR}/poppler/poppler-config.h
603
589
    install(FILES
604
590
      goo/PNGWriter.h
605
591
      DESTINATION include/poppler/goo)
606
 
  endif(PNG_FOUND)
 
592
  endif()
607
593
  if(TIFF_FOUND)
608
594
    install(FILES
609
595
      goo/TiffWriter.h
610
596
      DESTINATION include/poppler/goo)
611
 
  endif(TIFF_FOUND)
 
597
  endif()
612
598
  if(JPEG_FOUND)
613
599
    install(FILES
614
600
      goo/JpegWriter.h
615
601
      DESTINATION include/poppler/goo)
616
 
  endif(JPEG_FOUND)
 
602
  endif()
617
603
  install(FILES
618
604
    fofi/FoFiBase.h
619
605
    fofi/FoFiEncodings.h
627
613
      poppler/CurlCachedFile.h
628
614
      poppler/CurlPDFDocBuilder.h
629
615
      DESTINATION include/poppler)
630
 
  endif(ENABLE_LIBCURL)
631
 
  if(LIBOPENJPEG_FOUND)
632
 
    install(FILES
633
 
      poppler/JPEG2000Stream.h
634
 
      DESTINATION include/poppler)
635
 
  elseif(LIBOPENJPEG2_FOUND)
 
616
  endif()
 
617
  if(LIBOPENJPEG2_FOUND)
636
618
    install(FILES
637
619
      poppler/JPEG2000Stream.h
638
620
      DESTINATION include/poppler)
663
645
      splash/SplashPattern.h
664
646
      splash/SplashScreen.h
665
647
      splash/SplashState.h
666
 
      splash/SplashT1Font.h
667
 
      splash/SplashT1FontEngine.h
668
 
      splash/SplashT1FontFile.h
669
648
      splash/SplashTypes.h
670
649
      splash/SplashXPath.h
671
650
      splash/SplashXPathScanner.h
672
651
      DESTINATION include/poppler/splash)
673
 
  endif(ENABLE_SPLASH)
674
 
endif(ENABLE_XPDF_HEADERS)
 
652
  endif()
 
653
endif()
675
654
 
676
655
 
677
656
if(ENABLE_UTILS)
678
657
  add_subdirectory(utils)
679
 
endif(ENABLE_UTILS)
 
658
endif()
680
659
if(ENABLE_GLIB)
681
660
  add_subdirectory(glib)
682
 
endif(ENABLE_GLIB)
 
661
endif()
683
662
add_subdirectory(test)
684
 
if(QT4_FOUND)
685
 
  add_subdirectory(qt4)
686
 
endif(QT4_FOUND)
687
 
if(QT5_FOUND)
 
663
if(ENABLE_QT5)
688
664
  add_subdirectory(qt5)
689
 
endif(QT5_FOUND)
 
665
endif()
690
666
if(ENABLE_CPP)
691
667
  add_subdirectory(cpp)
692
 
endif(ENABLE_CPP)
 
668
endif()
693
669
 
694
670
set(PKG_CONFIG_VERSION_0_18 TRUE)
695
671
if(PKG_CONFIG_EXECUTABLE)
696
672
  exec_program(${PKG_CONFIG_EXECUTABLE} ARGS --version RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _output_VAR)
697
673
  macro_ensure_version("0.18" "${_output_VAR}" PKG_CONFIG_VERSION_0_18)
698
 
endif(PKG_CONFIG_EXECUTABLE)
 
674
endif()
699
675
if(PKG_CONFIG_VERSION_0_18)
700
676
  set(PC_REQUIRES "")
701
677
  set(PC_REQUIRES_PRIVATE "Requires.private: poppler = ${POPPLER_VERSION}")
702
 
else(PKG_CONFIG_VERSION_0_18)
 
678
else()
703
679
  set(PC_REQUIRES "poppler = ${POPPLER_VERSION}")
704
680
  set(PC_REQUIRES_PRIVATE "")
705
 
endif(PKG_CONFIG_VERSION_0_18)
 
681
endif()
706
682
 
707
 
poppler_create_install_pkgconfig(poppler.pc lib${LIB_SUFFIX}/pkgconfig)
 
683
poppler_create_install_pkgconfig(poppler.pc ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
708
684
if(ENABLE_SPLASH)
709
 
  poppler_create_install_pkgconfig(poppler-splash.pc lib${LIB_SUFFIX}/pkgconfig)
710
 
endif(ENABLE_SPLASH)
711
 
if(QT4_FOUND)
712
 
  poppler_create_install_pkgconfig(poppler-qt4.pc lib${LIB_SUFFIX}/pkgconfig)
713
 
endif(QT4_FOUND)
714
 
if(QT5_FOUND)
715
 
  poppler_create_install_pkgconfig(poppler-qt5.pc lib${LIB_SUFFIX}/pkgconfig)
716
 
endif(QT5_FOUND)
 
685
  poppler_create_install_pkgconfig(poppler-splash.pc ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
 
686
endif()
 
687
if(ENABLE_QT5)
 
688
  poppler_create_install_pkgconfig(poppler-qt5.pc ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
 
689
endif()
717
690
if(ENABLE_GLIB)
718
 
  poppler_create_install_pkgconfig(poppler-glib.pc lib${LIB_SUFFIX}/pkgconfig)
719
 
endif(ENABLE_GLIB)
 
691
  poppler_create_install_pkgconfig(poppler-glib.pc ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
 
692
endif()
720
693
if(CAIRO_FOUND)
721
 
  poppler_create_install_pkgconfig(poppler-cairo.pc lib${LIB_SUFFIX}/pkgconfig)
722
 
endif(CAIRO_FOUND)
 
694
  poppler_create_install_pkgconfig(poppler-cairo.pc ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
 
695
endif()
723
696
if(ENABLE_CPP)
724
 
  poppler_create_install_pkgconfig(poppler-cpp.pc lib${LIB_SUFFIX}/pkgconfig)
725
 
endif(ENABLE_CPP)
 
697
  poppler_create_install_pkgconfig(poppler-cpp.pc ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
 
698
endif()
726
699
 
727
700
 
728
701
message("Building Poppler with support for:")
732
705
  message("      with CMYK support")
733
706
endif()
734
707
show_end_message_yesno("cairo output" CAIRO_FOUND)
735
 
show_end_message_yesno("qt4 wrapper" QT4_FOUND)
736
 
show_end_message_yesno("qt5 wrapper" QT5_FOUND)
 
708
show_end_message_yesno("qt5 wrapper" ENABLE_QT5)
737
709
show_end_message_yesno("glib wrapper" ENABLE_GLIB)
738
710
show_end_message_yesno("  introspection" INTROSPECTION_FOUND)
 
711
show_end_message_yesno("  gtk-doc" ENABLE_GTK_DOC)
739
712
show_end_message_yesno("cpp wrapper" ENABLE_CPP)
740
 
show_end_message("use gtk-doc" "not supported with this CMake build system")
741
713
show_end_message_yesno("use libjpeg" ENABLE_LIBJPEG)
742
714
show_end_message_yesno("use libpng" ENABLE_LIBPNG)
743
715
show_end_message_yesno("use libtiff" ENABLE_LIBTIFF)
745
717
show_end_message_yesno("use zlib uncompress" ENABLE_ZLIB_UNCOMPRESS)
746
718
show_end_message_yesno("use nss3" ENABLE_NSS3)
747
719
show_end_message_yesno("use curl" ENABLE_LIBCURL)
748
 
show_end_message_yesno("use libopenjpeg" WITH_OPENJPEG)
749
 
if(USE_OPENJPEG1)
750
 
  message("      with openjpeg1")
751
 
endif()
752
 
if(USE_OPENJPEG2)
753
 
  message("      with openjpeg2")
754
 
endif()
755
 
show_end_message_yesno("use cms" USE_CMS)
756
 
if(LCMS_FOUND)
757
 
  message("      with lcms1")
758
 
endif(LCMS_FOUND)
759
 
if(LCMS2_FOUND)
760
 
  message("      with lcms2")
761
 
endif(LCMS2_FOUND)
 
720
show_end_message_yesno("use libopenjpeg2" WITH_OPENJPEG)
 
721
show_end_message_yesno("use lcms2" USE_CMS)
762
722
show_end_message_yesno("command line utils" ENABLE_UTILS)
763
723
show_end_message("test data dir" ${TESTDATADIR})
764
724
 
765
725
if(NOT ENABLE_SPLASH AND NOT CAIRO_FOUND)
766
726
  message("Warning: There is no rendering backend enabled")
767
 
endif(NOT ENABLE_SPLASH AND NOT CAIRO_FOUND)
 
727
endif()
768
728
 
769
729
if(USE_FIXEDPOINT AND USE_FLOAT)
770
730
  message("Warning: Single precision and fixed point options should not be enabled at the same time")
771
 
endif(USE_FIXEDPOINT AND USE_FLOAT)
 
731
endif()
772
732
 
773
 
if(NOT ENABLE_LIBJPEG)
 
733
if(NOT ENABLE_LIBJPEG AND HAVE_DCT_DECODER)
774
734
  message("Warning: Using libjpeg is recommended. The internal DCT decoder is unmaintained.")
775
 
endif(NOT ENABLE_LIBJPEG)
 
735
endif()
 
736
 
 
737
if(NOT HAVE_DCT_DECODER)
 
738
  message("Warning: You're not compiling any DCT decoder. Some files will fail to display properly.")
 
739
endif()
776
740
 
777
741
if(ENABLE_ZLIB_UNCOMPRESS)
778
742
  message("Warning: Using zlib is not totally safe")
779
 
endif(ENABLE_ZLIB_UNCOMPRESS)
 
743
endif()
780
744
 
781
 
if(NOT WITH_OPENJPEG)
 
745
if(NOT WITH_OPENJPEG AND HAVE_JPX_DECODER)
782
746
  message("Warning: Using libopenjpeg2 is recommended. The internal JPX decoder is unmaintained.")
783
 
endif(NOT WITH_OPENJPEG)
 
747
endif()
 
748
 
 
749
if(NOT HAVE_JPX_DECODER)
 
750
  message("Warning: You're not compiling any JPX decoder. Some files will fail to display properly.")
 
751
endif()
 
752
 
 
753
set(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${POPPLER_VERSION})
 
754
add_custom_target(dist
 
755
    COMMAND
 
756
        COMMAND git log --stat | fmt --split-only > ${CMAKE_BINARY_DIR}/ChangeLog
 
757
        COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar
 
758
        COMMAND tar -C ${CMAKE_BINARY_DIR} -rf ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar ChangeLog --transform='s,,${ARCHIVE_NAME}/,'
 
759
        COMMAND tar -C ${CMAKE_BINARY_DIR} -rf ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar glib/reference/html --transform='s,,${ARCHIVE_NAME}/,'
 
760
        COMMAND xz -9 ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar
 
761
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})