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) add_subdirectory(demo) 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) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.h COMMAND ${GLIB2_MKENUMS} ARGS --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} ARGS --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}) set_target_properties(poppler-glib PROPERTIES VERSION 8.9.0 SOVERSION 8) set_target_properties(poppler-glib PROPERTIES C_VISIBILITY_PRESET hidden) set_target_properties(poppler-glib PROPERTIES CXX_VISIBILITY_PRESET hidden) set_target_properties(poppler-glib PROPERTIES VISIBILITY_INLINES_HIDDEN 1) if(MINGW) 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 ${GLIB2_LIBRARIES} ${CAIRO_LIBRARIES} ${FREETYPE_LIBRARIES}) if(CMAKE_USE_PTHREADS_INIT) target_link_libraries(poppler-glib Threads::Threads) endif() install(TARGETS poppler-glib RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(FILES ${poppler_glib_public_headers} ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.h ${CMAKE_CURRENT_BINARY_DIR}/poppler-features.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" ) macro(_list_prefix _outvar _listvar _prefix) set(${_outvar}) foreach(_item IN LISTS ${_listvar}) list(APPEND ${_outvar} ${_prefix}${_item}) endforeach() endmacro(_list_prefix) # GObject Introspection if (HAVE_INTROSPECTION AND BUILD_SHARED_LIBS) include(GObjectIntrospectionMacros) set(INTROSPECTION_GIRS) set(INTROSPECTION_SCANNER_ARGS "--add-include-path=${CMAKE_CURRENT_SOURCE_DIR} --warn-all") set(INTROSPECTION_COMPILER_ARGS "--includedir=${CMAKE_CURRENT_SOURCE_DIR}") set(introspection_files ${poppler_glib_SRCS} ${poppler_glib_public_headers}) set(Poppler_0_18_gir "poppler-glib") set(Poppler_0_18_gir_INCLUDES GObject-2.0 Gio-2.0 cairo-1.0) get_directory_property(_tmp_includes INCLUDE_DIRECTORIES) _list_prefix(_includes _tmp_includes "-I") set(Poppler_0_18_gir_CFLAGS ${_includes} -L${CMAKE_BINARY_DIR}) set(Poppler_0_18_gir_LIBS poppler-glib) _list_prefix(_abs_introspection_files introspection_files "${CMAKE_CURRENT_SOURCE_DIR}/") list(APPEND _abs_introspection_files ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.c ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.h ${CMAKE_CURRENT_BINARY_DIR}/poppler-features.h ) set(Poppler_0_18_gir_FILES ${_abs_introspection_files}) set(Poppler_0_18_gir_SCANNERFLAGS --c-include poppler.h) set(Poppler_0_18_gir_EXPORT_PACKAGES poppler-glib) list(APPEND INTROSPECTION_GIRS Poppler-0.18.gir) gir_add_introspections(INTROSPECTION_GIRS) endif () if(ENABLE_GTK_DOC) add_subdirectory(reference) endif()