CMakeLists.txt 19.7 KB
Newer Older
1 2
project(poppler)

3
cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
4 5 6 7 8 9 10 11 12

set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)

include(PopplerDefaults)
include(PopplerMacros)
include(MacroOptionalFindPackage)
find_package(PkgConfig)
include(MacroEnsureVersion)
include(MacroBoolTo01)
13
find_package(Threads)
14 15
include(TestBigEndian)
test_big_endian(WORDS_BIGENDIAN)
16 17
include(CheckFileOffsetBits)
CHECK_FILE_OFFSET_BITS()
18

19
set(POPPLER_MAJOR_VERSION "0")
Albert Astals Cid's avatar
Albert Astals Cid committed
20
set(POPPLER_MINOR_VERSION "23")
Albert Astals Cid's avatar
Albert Astals Cid committed
21
set(POPPLER_MICRO_VERSION "2")
22
set(POPPLER_VERSION "${POPPLER_MAJOR_VERSION}.${POPPLER_MINOR_VERSION}.${POPPLER_MICRO_VERSION}")
23 24 25 26 27

# 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)
Albert Astals Cid's avatar
Albert Astals Cid committed
28
option(BUILD_QT5_TESTS "Whether compile the Qt5 test programs." ON)
29
option(BUILD_CPP_TESTS "Whether compile the CPP test programs." ON)
30 31
option(ENABLE_SPLASH "Build the Splash graphics backend." ON)
option(ENABLE_UTILS "Compile poppler command line utils." ON)
32
option(ENABLE_CPP "Compile poppler cpp wrapper." ON)
33
option(ENABLE_LIBOPENJPEG "Use libopenjpeg for JPX streams." ON)
34
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.")
Hib Eris's avatar
Hib Eris committed
35
option(ENABLE_LIBCURL "Build libcurl based HTTP support." OFF)
36
option(ENABLE_ZLIB "Build with zlib (not totally safe)." OFF)
37 38
option(USE_FIXEDPOINT "Use fixed point arithmetic in the Splash backend" OFF)
option(USE_FLOAT "Use single precision arithmetic in the Splash backend" OFF)
39
if(WIN32)
40
  option(ENABLE_RELOCATABLE "Do not hardcode the poppler library location (on Windows)." ON)
41 42 43
else(WIN32)
  set(ENABLE_RELOCATABLE OFF)
endif(WIN32)
44

45 46
set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)")

47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
set(TESTDATADIR "${CMAKE_SOURCE_DIR}/../test" CACHE STRING "Specify test data dir.")
if(NOT (EXISTS ${TESTDATADIR} AND EXISTS ${TESTDATADIR}/test-poppler.c))
  message(WARNING "
 No test data found in $testdatadir.
 You will not be able to run 'make test' successfully.

 The test data is not included in the source packages
 and is also not part of the main git repository. Instead,
 you can checkout the test data from its own git
 repository with:

   git clone git://git.freedesktop.org/git/poppler/test

 You should checkout the test data as a sibling of your
 poppler source folder or specify the location of your
 checkout with -DTESTDATADIR=/path/to/checkoutdir/test.
  ")
endif()

66 67 68 69 70 71 72
if(WIN32)
  set(_default_fontconfiguration "win32")
else(WIN32)
  set(_default_fontconfiguration "fontconfig")
endif(WIN32)
set(FONT_CONFIGURATION "${_default_fontconfiguration}" CACHE STRING "The font configuration backend (win32|fontconfig).")
string(TOLOWER "${FONT_CONFIGURATION}" font_configuration)
73 74
set(WITH_FONTCONFIGURATION_WIN32 OFF)
set(WITH_FONTCONFIGURATION_FONTCONFIG OFF)
75 76 77 78 79 80 81 82
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")
  message(FATAL_ERROR "Invalid font configuration setting: ${FONT_CONFIGURATION}")
endif(font_configuration STREQUAL "win32")

83
# Enable these unconditionally.
84
set(MULTITHREADED ON)
85 86 87 88
set(OPI_SUPPORT ON)
set(TEXTOUT_WORD_LIST ON)

# setting the minimum required versions for some components
Albert Astals Cid's avatar
Albert Astals Cid committed
89
set(QT4_MIN_VERSION "4.4.0")
90
set(CAIRO_VERSION "1.10.0")
91
set(GLIB_REQUIRED "2.18")
92 93 94

macro_bool_to_01(ENABLE_SPLASH HAVE_SPLASH)
find_package(Freetype REQUIRED)
95 96 97
if(WITH_FONTCONFIGURATION_FONTCONFIG)
  find_package(Fontconfig REQUIRED)
endif(WITH_FONTCONFIGURATION_FONTCONFIG)
98
macro_optional_find_package(JPEG)
99
macro_optional_find_package(PNG)
100
macro_optional_find_package(TIFF)
101
if(JPEG_FOUND)
Albert Astals Cid's avatar
Albert Astals Cid committed
102
  set(ENABLE_LIBJPEG ${JPEG_FOUND})
103 104
endif(JPEG_FOUND)
macro_optional_find_package(Qt4)
Albert Astals Cid's avatar
Albert Astals Cid committed
105 106 107 108 109 110
find_package(Qt5Core)
find_package(Qt5Gui)
find_package(Qt5Xml)
find_package(Qt5Widgets)
find_package(Qt5Test)
if (NOT Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Xml_FOUND AND Qt5Widgets_FOUND AND Qt5Test_FOUND)
Albert Astals Cid's avatar
Albert Astals Cid committed
111 112
  message("-- Package Qt5Core or Qt5Gui or Qt5Xml or Qt5Widgets or Qt5Test not found")
  set(QT5_FOUND false)
Albert Astals Cid's avatar
Albert Astals Cid committed
113
else(NOT Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Xml_FOUND AND Qt5Widgets_FOUND AND Qt5Test_FOUND)
Albert Astals Cid's avatar
Albert Astals Cid committed
114
  set(QT5_FOUND true)
Albert Astals Cid's avatar
Albert Astals Cid committed
115
endif(NOT Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Xml_FOUND AND Qt5Widgets_FOUND AND Qt5Test_FOUND)
116 117
macro_optional_find_package(Cairo ${CAIRO_VERSION})
if(CAIRO_FOUND)
Albert Astals Cid's avatar
Albert Astals Cid committed
118
  set(HAVE_CAIRO ${CAIRO_FOUND})
119 120
  set(CAIRO_FEATURE "#define POPPLER_HAS_CAIRO 1")
  set(CAIRO_REQ "cairo")
121 122
  set(POPPLER_GLIB_DISABLE_DEPRECATED "")
  set(POPPLER_GLIB_DISABLE_SINGLE_INCLUDES "")
123
  macro_optional_find_package(GLIB)
124
  if(GLIB_FOUND)
125
    set(ENABLE_GLIB ON)
126
    # Check for introspection
127
    macro_optional_find_package(GObjectIntrospection 0.9.12)
128
    set(HAVE_INTROSPECTION ${INTROSPECTION_FOUND})
129 130
    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")
131
    macro_optional_find_package(GTK)
132 133 134 135
  endif(GLIB_FOUND)
else(CAIRO_FOUND)
  set(CAIRO_FEATURE "#undef POPPLER_HAS_CAIRO")
endif(CAIRO_FOUND)
136 137 138 139 140
if(ENABLE_CPP)
  macro_optional_find_package(Iconv)
  set(ENABLE_CPP ${ICONV_FOUND})
  set(HAVE_ICONV ${ICONV_FOUND})
endif(ENABLE_CPP)
141 142 143
if(ENABLE_ZLIB)
  find_package(ZLIB)
  if(ZLIB_FOUND)
Albert Astals Cid's avatar
Albert Astals Cid committed
144
    set(HAVE_LIBZ ${ZLIB_FOUND})
145 146 147
  endif(ZLIB_FOUND)
  set(ENABLE_ZLIB ${ZLIB_FOUND})
endif(ENABLE_ZLIB)
148 149 150
if(ENABLE_LIBOPENJPEG)
  find_package(LIBOPENJPEG)
  set(ENABLE_LIBOPENJPEG ${LIBOPENJPEG_FOUND})
151
  set(HAVE_OPENJPEG_H ON)
152
endif(ENABLE_LIBOPENJPEG)
153
if(ENABLE_CMS STREQUAL "auto")
Pino Toscano's avatar
Pino Toscano committed
154
  find_package(LCMS2)
155 156
  set(USE_CMS ${LCMS2_FOUND})
  if(NOT LCMS2_FOUND)
Pino Toscano's avatar
Pino Toscano committed
157 158 159
    find_package(LCMS)
    set(USE_CMS ${LCMS_FOUND})
    set(USE_LCMS1 ${LCMS_FOUND})
160 161 162 163 164 165 166 167 168
  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")
  find_package(LCMS2)
  set(USE_CMS ${LCMS2_FOUND})
endif()
Hib Eris's avatar
Hib Eris committed
169 170 171 172 173
if(ENABLE_LIBCURL)
  find_package(CURL)
  include_directories(${CURL_INCLUDE_DIR})
  set(POPPLER_HAS_CURL_SUPPORT ON)
endif(ENABLE_LIBCURL)
174

175
add_definitions(-DHAVE_CONFIG_H=1)
176 177 178 179
if(MINGW)
  # Use mingw's ansi stdio extensions
  add_definitions(-D__USE_MINGW_ANSI_STDIO=1)
endif(MINGW)
180 181
if(FONTCONFIG_FOUND)
  add_definitions(${FONTCONFIG_DEFINITIONS})
182
  include_directories(${FONTCONFIG_INCLUDE_DIR})
183
endif(FONTCONFIG_FOUND)
184 185 186 187 188 189
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)
190 191 192 193 194 195 196
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
197
  ${FREETYPE_INCLUDE_DIRS}
198 199
)
set(HAVE_FREETYPE_H ON)
200 201 202
if(CMAKE_USE_PTHREADS_INIT)
  set(HAVE_PTHREAD ON)
endif(CMAKE_USE_PTHREADS_INIT)
203 204 205 206 207 208 209 210

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)
211 212 213 214
if(PNG_FOUND)
  include_directories(${PNG_INCLUDE_DIR})
  set(ENABLE_LIBPNG ON)
endif(PNG_FOUND)
215 216 217 218
if(TIFF_FOUND)
  include_directories(${TIFF_INCLUDE_DIR})
  set(ENABLE_LIBTIFF ON)
endif(TIFF_FOUND)
219
if(LIBOPENJPEG_FOUND)
220
  include_directories(${LIBOPENJPEG_INCLUDE_DIR})
221
endif(LIBOPENJPEG_FOUND)
Albert Astals Cid's avatar
Albert Astals Cid committed
222 223 224
if(LCMS_FOUND)
  include_directories(${LCMS_INCLUDE_DIR})
endif(LCMS_FOUND)
Pino Toscano's avatar
Pino Toscano committed
225 226 227
if(LCMS2_FOUND)
  include_directories(${LCMS2_INCLUDE_DIR})
endif(LCMS2_FOUND)
228 229 230 231 232 233 234

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")
235
  set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS_NO} ${CMAKE_CXX_FLAGS}")
236 237
endif(_comp_warnings STREQUAL "no")
if(_comp_warnings STREQUAL "yes")
238
  set(CMAKE_C_FLAGS "-Wall ${CMAKE_C_FLAGS}")
239
  set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS_YES} ${CMAKE_CXX_FLAGS}")
240 241
endif(_comp_warnings STREQUAL "yes")
if(_comp_warnings STREQUAL "kde")
242
  set(CMAKE_C_FLAGS "-Wall ${CMAKE_C_FLAGS}")
243 244 245 246 247 248
  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)
249
configure_file(poppler/poppler-config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/poppler/poppler-config.h)
250 251 252 253 254 255 256 257 258 259 260


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
261
  goo/PNGWriter.cc
262
  goo/TiffWriter.cc
Albert Astals Cid's avatar
Albert Astals Cid committed
263
  goo/JpegWriter.cc
264
  goo/ImgWriter.cc
265
  goo/gstrtod.cc
266
  goo/grandom.cc
267 268 269 270 271
  fofi/FoFiBase.cc
  fofi/FoFiEncodings.cc
  fofi/FoFiTrueType.cc
  fofi/FoFiType1.cc
  fofi/FoFiType1C.cc
272
  fofi/FoFiIdentifier.cc
273 274 275 276
  poppler/Annot.cc
  poppler/Array.cc
  poppler/BuiltinFont.cc
  poppler/BuiltinFontTables.cc
Hib Eris's avatar
Hib Eris committed
277
  poppler/CachedFile.cc
278 279 280
  poppler/Catalog.cc
  poppler/CharCodeToUnicode.cc
  poppler/CMap.cc
281
  poppler/DateInfo.cc
282 283 284
  poppler/Decrypt.cc
  poppler/Dict.cc
  poppler/Error.cc
285
  poppler/FileSpec.cc
286 287 288 289 290 291 292 293
  poppler/FontEncodingTables.cc
  poppler/Form.cc
  poppler/FontInfo.cc
  poppler/Function.cc
  poppler/Gfx.cc
  poppler/GfxFont.cc
  poppler/GfxState.cc
  poppler/GlobalParams.cc
Hib Eris's avatar
Hib Eris committed
294
  poppler/Hints.cc
295 296 297 298
  poppler/JArithmeticDecoder.cc
  poppler/JBIG2Stream.cc
  poppler/Lexer.cc
  poppler/Link.cc
Hib Eris's avatar
Hib Eris committed
299
  poppler/Linearization.cc
300
  poppler/LocalPDFDocBuilder.cc
301 302
  poppler/NameToCharCode.cc
  poppler/Object.cc
303
  poppler/OptionalContent.cc
304 305 306 307 308 309 310
  poppler/Outline.cc
  poppler/OutputDev.cc
  poppler/Page.cc
  poppler/PageTransition.cc
  poppler/Parser.cc
  poppler/PDFDoc.cc
  poppler/PDFDocEncoding.cc
Hib Eris's avatar
Hib Eris committed
311
  poppler/PDFDocFactory.cc
312
  poppler/PopplerCache.cc
313 314 315 316
  poppler/ProfileData.cc
  poppler/PreScanOutputDev.cc
  poppler/PSTokenizer.cc
  poppler/Stream.cc
317
  poppler/strtok_r.cpp
318 319
  poppler/UnicodeMap.cc
  poppler/UnicodeTypeTable.cc
320
  poppler/UTF.cc
321 322 323 324 325
  poppler/XRef.cc
  poppler/PSOutputDev.cc
  poppler/TextOutputDev.cc
  poppler/PageLabelInfo.cc
  poppler/SecurityHandler.cc
326
  poppler/StdinCachedFile.cc
327
  poppler/StdinPDFDocBuilder.cc
328
  poppler/Sound.cc
329
  poppler/ViewerPreferences.cc
330
  poppler/XpdfPluginAPI.cc
Hugo Mercier's avatar
Hugo Mercier committed
331
  poppler/Movie.cc
332
  poppler/Rendition.cc
333
)
334
set(poppler_LIBS ${FREETYPE_LIBRARIES})
335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358
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)
359 360 361
if(FONTCONFIG_FOUND)
  set(poppler_LIBS ${poppler_LIBS} ${FONTCONFIG_LIBRARIES})
endif(FONTCONFIG_FOUND)
362 363 364 365 366 367 368 369 370 371 372 373
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)
Hib Eris's avatar
Hib Eris committed
374 375 376
if(ENABLE_LIBCURL)
  set(poppler_SRCS ${poppler_SRCS}
    poppler/CurlCachedFile.cc
Hib Eris's avatar
Hib Eris committed
377
    poppler/CurlPDFDocBuilder.cc
Hib Eris's avatar
Hib Eris committed
378 379 380
  )
  set(poppler_LIBS ${poppler_LIBS} ${CURL_LIBRARIES})
endif(ENABLE_LIBCURL)
381
if(LIBOPENJPEG_FOUND)
382 383 384 385
  set(poppler_SRCS ${poppler_SRCS}
    poppler/JPEG2000Stream.cc
  )
  set(poppler_LIBS ${poppler_LIBS} ${LIBOPENJPEG_LIBRARIES})
386
else (LIBOPENJPEG_FOUND)
387 388 389
  set(poppler_SRCS ${poppler_SRCS}
    poppler/JPXStream.cc
  )
390
endif(LIBOPENJPEG_FOUND)
391
if(USE_CMS)
Pino Toscano's avatar
Pino Toscano committed
392 393 394 395 396 397
  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)
398
endif(USE_CMS)
399 400 401 402
if(WIN32)
  # gdi32 is needed under win32
  set(poppler_LIBS ${poppler_LIBS} gdi32)
endif(WIN32)
403 404 405
if(PNG_FOUND)
  set(poppler_LIBS ${poppler_LIBS} ${PNG_LIBRARIES})
endif(PNG_FOUND)
406 407 408
if(TIFF_FOUND)
  set(poppler_LIBS ${poppler_LIBS} ${TIFF_LIBRARIES})
endif(TIFF_FOUND)
409

410
if(MSVC)
411
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
412
set(CMAKE_CXX_FLAGS "/Zc:wchar_t- ${CMAKE_CXX_FLAGS}")
413 414
add_library(poppler STATIC ${poppler_SRCS})
else(MSVC)
415
add_library(poppler SHARED ${poppler_SRCS})
416
endif(MSVC)
Albert Astals Cid's avatar
Albert Astals Cid committed
417
set_target_properties(poppler PROPERTIES VERSION 40.0.0 SOVERSION 40)
418
target_link_libraries(poppler ${poppler_LIBS})
419 420 421
if(HAVE_PTHREAD)
  target_link_libraries(poppler -lpthread)
endif()
422
target_link_libraries(poppler LINK_INTERFACE_LIBRARIES "")
423
install(TARGETS poppler RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX})
424 425 426 427 428 429 430

if(ENABLE_XPDF_HEADERS)
  install(FILES
    poppler/Annot.h
    poppler/Array.h
    poppler/BuiltinFont.h
    poppler/BuiltinFontTables.h
Hib Eris's avatar
Hib Eris committed
431
    poppler/CachedFile.h
432 433 434
    poppler/Catalog.h
    poppler/CharCodeToUnicode.h
    poppler/CMap.h
435
    poppler/DateInfo.h
436 437 438
    poppler/Decrypt.h
    poppler/Dict.h
    poppler/Error.h
439
    poppler/FileSpec.h
440 441 442 443 444 445 446 447
    poppler/FontEncodingTables.h
    poppler/FontInfo.h
    poppler/Form.h
    poppler/Function.cc
    poppler/Function.h
    poppler/Gfx.h
    poppler/GfxFont.h
    poppler/GfxState.h
448
    poppler/GfxState_helpers.h
449
    poppler/GlobalParams.h
Hib Eris's avatar
Hib Eris committed
450
    poppler/Hints.h
451 452 453 454
    poppler/JArithmeticDecoder.h
    poppler/JBIG2Stream.h
    poppler/Lexer.h
    poppler/Link.h
Hib Eris's avatar
Hib Eris committed
455
    poppler/Linearization.h
456
    poppler/LocalPDFDocBuilder.h
457
    poppler/Movie.h
458 459
    poppler/NameToCharCode.h
    poppler/Object.h
460
    poppler/OptionalContent.h
461 462 463 464 465 466
    poppler/Outline.h
    poppler/OutputDev.h
    poppler/Page.h
    poppler/PageTransition.h
    poppler/Parser.h
    poppler/PDFDoc.h
Hib Eris's avatar
Hib Eris committed
467
    poppler/PDFDocBuilder.h
468
    poppler/PDFDocEncoding.h
Hib Eris's avatar
Hib Eris committed
469
    poppler/PDFDocFactory.h
Albert Astals Cid's avatar
Albert Astals Cid committed
470
    poppler/PopplerCache.h
471 472 473
    poppler/ProfileData.h
    poppler/PreScanOutputDev.h
    poppler/PSTokenizer.h
474
    poppler/Rendition.h
475 476 477 478 479 480 481 482
    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
483
    poppler/ViewerPreferences.h
484 485 486 487 488 489 490 491
    poppler/XRef.h
    poppler/CharTypes.h
    poppler/CompactFontTables.h
    poppler/ErrorCodes.h
    poppler/NameToUnicodeTable.h
    poppler/PSOutputDev.h
    poppler/TextOutputDev.h
    poppler/SecurityHandler.h
492
    poppler/StdinCachedFile.h
493
    poppler/StdinPDFDocBuilder.h
494
    poppler/UTF.h
495
    poppler/UTF8.h
496 497 498 499
    poppler/XpdfPluginAPI.h
    poppler/Sound.h
    ${CMAKE_CURRENT_BINARY_DIR}/poppler/poppler-config.h
    DESTINATION include/poppler)
500 501 502 503 504 505 506 507 508 509
  install(FILES
    goo/GooHash.h
    goo/GooList.h
    goo/GooTimer.h
    goo/GooMutex.h
    goo/GooString.h
    goo/gtypes.h
    goo/gmem.h
    goo/gfile.h
    goo/FixedPoint.h
510
    goo/ImgWriter.h
511
    goo/GooLikely.h
512
    goo/gstrtod.h
513
    goo/grandom.h
514
    DESTINATION include/poppler/goo)
515 516 517 518 519
  if(PNG_FOUND)
    install(FILES
      goo/PNGWriter.h
      DESTINATION include/poppler/goo)
  endif(PNG_FOUND)
520 521 522 523 524
  if(TIFF_FOUND)
    install(FILES
      goo/TiffWriter.h
      DESTINATION include/poppler/goo)
  endif(TIFF_FOUND)
525 526 527 528 529 530
  install(FILES
    fofi/FoFiBase.h
    fofi/FoFiEncodings.h
    fofi/FoFiTrueType.h
    fofi/FoFiType1.h
    fofi/FoFiType1C.h
531
    fofi/FoFiIdentifier.h
532
    DESTINATION include/poppler/fofi)
Hib Eris's avatar
Hib Eris committed
533 534 535
  if(ENABLE_LIBCURL)
    install(FILES
      poppler/CurlCachedFile.h
Hib Eris's avatar
Hib Eris committed
536
      poppler/CurlPDFDocBuilder.h
Hib Eris's avatar
Hib Eris committed
537 538
      DESTINATION include/poppler)
  endif(ENABLE_LIBCURL)
539
  if(LIBOPENJPEG_FOUND)
540 541 542
    install(FILES
      poppler/JPEG2000Stream.h
      DESTINATION include/poppler)
543 544 545
    install(FILES
      goo/JpegWriter.h
      DESTINATION include/poppler/goo)
546
  else(LIBOPENJPEG_FOUND)
547 548 549
    install(FILES
      poppler/JPXStream.h
      DESTINATION include/poppler)
550
  endif(LIBOPENJPEG_FOUND)
551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586
  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)
587
if(ENABLE_GLIB)
588
  add_subdirectory(glib)
589
endif(ENABLE_GLIB)
590 591 592 593
add_subdirectory(test)
if(QT4_FOUND)
  add_subdirectory(qt4)
endif(QT4_FOUND)
Albert Astals Cid's avatar
Albert Astals Cid committed
594 595 596
if(QT5_FOUND)
  add_subdirectory(qt5)
endif(QT5_FOUND)
597 598 599
if(ENABLE_CPP)
  add_subdirectory(cpp)
endif(ENABLE_CPP)
600 601

set(PKG_CONFIG_VERSION_0_18 TRUE)
602 603
if(PKG_CONFIG_EXECUTABLE)
  exec_program(${PKG_CONFIG_EXECUTABLE} ARGS --version RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _output_VAR)
604
  macro_ensure_version("0.18" "${_output_VAR}" PKG_CONFIG_VERSION_0_18)
605
endif(PKG_CONFIG_EXECUTABLE)
606 607 608 609 610 611 612 613
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)

614
poppler_create_install_pkgconfig(poppler.pc lib${LIB_SUFFIX}/pkgconfig)
615
if(ENABLE_SPLASH)
616
  poppler_create_install_pkgconfig(poppler-splash.pc lib${LIB_SUFFIX}/pkgconfig)
617 618
endif(ENABLE_SPLASH)
if(QT4_FOUND)
619
  poppler_create_install_pkgconfig(poppler-qt4.pc lib${LIB_SUFFIX}/pkgconfig)
620
endif(QT4_FOUND)
Albert Astals Cid's avatar
Albert Astals Cid committed
621 622 623
if(QT5_FOUND)
  poppler_create_install_pkgconfig(poppler-qt5.pc lib${LIB_SUFFIX}/pkgconfig)
endif(QT5_FOUND)
624
if(ENABLE_GLIB)
625
  poppler_create_install_pkgconfig(poppler-glib.pc lib${LIB_SUFFIX}/pkgconfig)
626
endif(ENABLE_GLIB)
627
if(CAIRO_FOUND)
628
  poppler_create_install_pkgconfig(poppler-cairo.pc lib${LIB_SUFFIX}/pkgconfig)
629
endif(CAIRO_FOUND)
630 631 632
if(ENABLE_CPP)
  poppler_create_install_pkgconfig(poppler-cpp.pc lib${LIB_SUFFIX}/pkgconfig)
endif(ENABLE_CPP)
633 634 635


message("Building Poppler with support for:")
636
show_end_message("font configuration" ${font_configuration})
637 638 639
show_end_message_yesno("splash output" ENABLE_SPLASH)
show_end_message_yesno("cairo output" CAIRO_FOUND)
show_end_message_yesno("qt4 wrapper" QT4_FOUND)
Albert Astals Cid's avatar
Albert Astals Cid committed
640
show_end_message_yesno("qt5 wrapper" QT5_FOUND)
641
show_end_message_yesno("glib wrapper" ENABLE_GLIB)
642
show_end_message_yesno("  introspection" INTROSPECTION_FOUND)
643
show_end_message_yesno("cpp wrapper" ENABLE_CPP)
644
show_end_message("use gtk-doc" "not supported with this CMake build system")
645 646
show_end_message_yesno("use libjpeg" ENABLE_LIBJPEG)
show_end_message_yesno("use libpng" ENABLE_LIBPNG)
647
show_end_message_yesno("use libtiff" ENABLE_LIBTIFF)
648
show_end_message_yesno("use zlib" ENABLE_ZLIB)
Hib Eris's avatar
Hib Eris committed
649
show_end_message_yesno("use curl" ENABLE_LIBCURL)
650 651
show_end_message_yesno("use libopenjpeg" LIBOPENJPEG_FOUND)
show_end_message_yesno("use cms" USE_CMS)
Pino Toscano's avatar
Pino Toscano committed
652 653 654 655 656 657
if(LCMS_FOUND)
  message("      with lcms1")
endif(LCMS_FOUND)
if(LCMS2_FOUND)
  message("      with lcms2")
endif(LCMS2_FOUND)
658
show_end_message_yesno("command line utils" ENABLE_UTILS)
659
show_end_message("test data dir" ${TESTDATADIR})
660 661 662 663

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)