| include_directories( |
| ${CMAKE_CURRENT_SOURCE_DIR} |
| ${CMAKE_CURRENT_BINARY_DIR} |
| ) |
| |
| include_directories( |
| SYSTEM |
| ${GLIB2_INCLUDE_DIRS} |
| ${CAIRO_INCLUDE_DIRS} |
| ) |
| add_definitions( |
| -DG_LOG_DOMAIN=\"Poppler\" |
| ${GLIB2_CFLAGS_OTHER} |
| ${CAIRO_CFLAGS} |
| ${POPPLER_GLIB_DISABLE_DEPRECATED} |
| ${POPPLER_GLIB_DISABLE_SINGLE_INCLUDES} |
| ) |
| |
| configure_file(poppler-features.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/poppler-features.h @ONLY) |
| |
| if (GTK_FOUND AND BUILD_GTK_TESTS AND NOT MSVC) |
| add_subdirectory(demo) |
| add_subdirectory(tests) |
| endif () |
| |
| set(poppler_glib_public_headers |
| poppler-action.h |
| poppler-date.h |
| poppler-document.h |
| poppler-page.h |
| poppler-attachment.h |
| poppler-form-field.h |
| poppler-annot.h |
| poppler-layer.h |
| poppler-movie.h |
| poppler-media.h |
| poppler.h |
| poppler-structure-element.h |
| ) |
| |
| find_program(GLIB2_MKENUMS glib-mkenums REQUIRED) |
| find_program(GLIB2_MKENUMS_PYTHON NAMES python3 python) |
| |
| add_custom_command( |
| OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.h |
| COMMAND ${GLIB2_MKENUMS_PYTHON} |
| ARGS |
| ${GLIB2_MKENUMS} |
| --template poppler-enums.h.template |
| ${poppler_glib_public_headers} > ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.h |
| WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} |
| DEPENDS ${poppler_glib_public_headers} |
| ${CMAKE_CURRENT_SOURCE_DIR}/poppler-enums.h.template |
| ) |
| |
| add_custom_command( |
| OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.c |
| COMMAND ${GLIB2_MKENUMS_PYTHON} |
| ARGS |
| ${GLIB2_MKENUMS} |
| --template poppler-enums.c.template |
| ${poppler_glib_public_headers} > ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.c |
| WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} |
| DEPENDS ${poppler_glib_public_headers} ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.h |
| ${CMAKE_CURRENT_SOURCE_DIR}/poppler-enums.c.template |
| ) |
| |
| |
| set(poppler_glib_SRCS |
| poppler-action.cc |
| poppler-date.cc |
| poppler-document.cc |
| poppler-page.cc |
| poppler-attachment.cc |
| poppler-form-field.cc |
| poppler-annot.cc |
| poppler-layer.cc |
| poppler-movie.cc |
| poppler-media.cc |
| poppler.cc |
| poppler-cached-file-loader.cc |
| poppler-input-stream.cc |
| poppler-structure-element.cc |
| ) |
| set(poppler_glib_generated_SRCS |
| ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.c |
| ${CMAKE_SOURCE_DIR}/poppler/CairoFontEngine.cc |
| ${CMAKE_SOURCE_DIR}/poppler/CairoOutputDev.cc |
| ${CMAKE_SOURCE_DIR}/poppler/CairoRescaleBox.cc |
| ) |
| add_library(poppler-glib ${poppler_glib_SRCS} ${poppler_glib_generated_SRCS}) |
| generate_export_header(poppler-glib EXPORT_MACRO_NAME POPPLER_PUBLIC EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/poppler-macros.h") |
| set_target_properties(poppler-glib PROPERTIES VERSION 8.26.0 SOVERSION 8) |
| if(MINGW AND BUILD_SHARED_LIBS) |
| get_target_property(POPPLER_GLIB_SOVERSION poppler-glib SOVERSION) |
| set_target_properties(poppler-glib PROPERTIES SUFFIX "-${POPPLER_GLIB_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}") |
| endif() |
| target_link_libraries(poppler-glib poppler PkgConfig::GLIB2 ${CAIRO_LIBRARIES} Freetype::Freetype) |
| target_include_directories(poppler-glib SYSTEM PRIVATE ${CAIRO_INCLUDE_DIRS}) |
| install(TARGETS poppler-glib RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
| |
| if (ENABLE_NSS3) |
| target_include_directories(poppler-glib SYSTEM PRIVATE ${NSS3_INCLUDE_DIRS}) |
| endif() |
| |
| install(FILES |
| ${poppler_glib_public_headers} |
| ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.h |
| ${CMAKE_CURRENT_BINARY_DIR}/poppler-features.h |
| ${CMAKE_CURRENT_BINARY_DIR}/poppler-macros.h |
| DESTINATION include/poppler/glib) |
| |
| set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES |
| "${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.h ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.c" |
| ) |
| |
| # GObject Introspection |
| if (HAVE_INTROSPECTION AND BUILD_SHARED_LIBS) |
| include(GObjectIntrospectionMacros) |
| |
| # General gir: Reset object-list for introspection & load tool args |
| set(INTROSPECTION_GIRS) |
| set(INTROSPECTION_SCANNER_ARGS "--add-include-path=${CMAKE_CURRENT_SOURCE_DIR}" "--warn-all") |
| set(INTROSPECTION_COMPILER_ARGS ${INTROSPECTION_COMPILER_ARGS} "--includedir=${CMAKE_CURRENT_SOURCE_DIR}") |
| |
| # Poppler: Assign package to gir & export keys |
| set(Poppler_0_18_gir "poppler-glib") |
| set(Poppler_0_18_gir_EXPORT_PACKAGES "poppler-glib") |
| # Then load library and header lists |
| set(Poppler_0_18_gir_LIBS "poppler-glib" "poppler") |
| set(Poppler_0_18_gir_INCLUDES "GObject-2.0" "Gio-2.0" "cairo-1.0") |
| |
| # Format list of include directories as compiler flags |
| get_directory_property(_tmp_includes INCLUDE_DIRECTORIES) |
| _gir_list_prefix(_includes _tmp_includes "-I") |
| # And set flags for gir compiler and scanner |
| set(Poppler_0_18_gir_CFLAGS ${_includes} -L${CMAKE_BINARY_DIR} -L${CMAKE_CURRENT_BINARY_DIR}) |
| set(Poppler_0_18_gir_SCANNERFLAGS "--c-include=poppler.h") |
| |
| # Load temporary source-file lists, including a few generated at build |
| set(orig_introspect_srcs ${poppler_glib_SRCS} ${poppler_glib_public_headers}) |
| set(gen_introspect_srcs "poppler-enums.c" "poppler-enums.h" "poppler-features.h" "poppler-macros.h") |
| # Prefix the files with their correct directories for full paths |
| _gir_list_prefix(_orig_introspect_paths orig_introspect_srcs "${CMAKE_CURRENT_SOURCE_DIR}/") |
| _gir_list_prefix(_gen_introspect_paths gen_introspect_srcs "${CMAKE_CURRENT_BINARY_DIR}/") |
| # Now load them to the final file list |
| set(Poppler_0_18_gir_FILES ${_orig_introspect_paths} ${_gen_introspect_paths}) |
| |
| # Finally, load the list of objects for introspection & invoke macro |
| list(APPEND INTROSPECTION_GIRS Poppler-0.18.gir) |
| gir_add_introspections(INTROSPECTION_GIRS) |
| endif () |
| |
| if(ENABLE_GTK_DOC) |
| add_subdirectory(reference) |
| endif() |
| |
| check_function_exists(explicit_bzero HAVE_EXPLICIT_BZERO) |