blob: 97d5d5ac6364272867fab9629881ee18398f7ff0 [file] [log] [blame]
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-macros.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.13.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 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()
if(${CMAKE_VERSION} VERSION_LESS "3.6.0")
target_link_libraries(poppler-glib poppler ${GLIB2_LIBRARIES} ${CAIRO_LIBRARIES} ${FREETYPE_LIBRARIES})
else()
target_link_libraries(poppler-glib poppler PkgConfig::GLIB2 ${CAIRO_LIBRARIES} ${FREETYPE_LIBRARIES})
endif()
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} -L${CMAKE_CURRENT_BINARY_DIR})
set(Poppler_0_18_gir_LIBS poppler-glib poppler)
_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()