blob: 372d9842a776efc3db2db2207e7b4df50c62d8fd [file] [log] [blame]
add_definitions(-DG_LOG_DOMAIN=\\"Poppler\\" ${GLIB2_CFLAGS})
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
if (CAIRO_FOUND)
include_directories(${CAIRO_INCLUDES})
set (CAIRO_FEATURE "#define POPPLER_HAS_CAIRO 1")
add_definitions(${CAIRO_CFLAGS})
else (CAIRO_FOUND)
set (CAIRO_FEATURE "#undef POPPLER_HAS_CAIRO")
endif (CAIRO_FOUND)
if (GDK_FOUND)
add_definitions(${GDK2_CFLAGS})
endif (GDK_FOUND)
configure_file(poppler-features.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/poppler-features.h)
if (GTK_FOUND)
add_subdirectory(demo)
endif (GTK_FOUND)
set(poppler_glib_public_headers
poppler-action.h
poppler-document.h
poppler-page.h
poppler-attachment.h
poppler-form-field.h
poppler-annot.h
poppler.h
)
find_program(GLIB2_MKENUMS glib-mkenums)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.h
COMMAND ${GLIB2_MKENUMS}
ARGS
--fhead \"\#ifndef __POPPLER_TYPE_ENUMS_H__\\n\"
--fhead \"\#define __POPPLER_TYPE_ENUMS_H__ 1\\n\\n\"
--fhead \"\#include <glib-object.h>\\n\\n\"
--fhead \"G_BEGIN_DECLS\\n\\n\"
--ftail \"G_END_DECLS\\n\\n\"
--ftail \"\#endif /* __POPPLER_TYPE_ENUMS_H__ */\\n\"
--fprod \"\\n/* --- @filename@ --- */\"
--eprod \"\#define POPPLER_TYPE_@ENUMSHORT@ \(@enum_name@_get_type\(\)\)\\n\"
--eprod \"GType @enum_name@_get_type \(void\) G_GNUC_CONST\;\\n\"
${poppler_glib_public_headers} > ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.h
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${poppler_glib_public_headers}
)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.c
COMMAND ${GLIB2_MKENUMS}
ARGS
--fhead \"\#include \\"poppler-enums.h\\"\\n\\n\"
--fprod \"\\n/* enumerations from \\"@filename@\\" */\"
--fprod \"\\n\#include \\"@filename@\\"\"
--vhead \"static const G@Type@Value _@enum_name@_values[] = {\"
--vprod \" { @VALUENAME@, \\"@VALUENAME@\\", \\"@valuenick@\\" },\"
--vtail \" { 0, NULL, NULL }\\n}\;\\n\\n\"
--vtail \"GType\\n@enum_name@_get_type \(void\)\\n{\\n\"
--vtail \" static GType type = 0\;\\n\\n\"
--vtail \" if \(G_UNLIKELY \(type == 0\)\)\\n\"
--vtail \" type = g_\@type\@_register_static \(\\"@EnumName@\\", _@enum_name@_values\)\;\\n\\n\"
--vtail \" return type\;\\n}\\n\\n\"
${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
)
set(poppler_glib_SRCS
poppler-action.cc
poppler-document.cc
poppler-page.cc
poppler-attachment.cc
poppler-form-field.cc
poppler-annot.cc
poppler.cc
${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.c
)
if (CAIRO_FOUND)
set(poppler_glib_SRCS ${poppler_glib_SRCS}
${CMAKE_SOURCE_DIR}/poppler/CairoFontEngine.cc
${CMAKE_SOURCE_DIR}/poppler/CairoOutputDev.cc
)
endif (CAIRO_FOUND)
add_library(poppler-glib SHARED ${poppler_glib_SRCS})
set_target_properties(poppler-glib PROPERTIES VERSION 3.0.0 SOVERSION 3)
target_link_libraries(poppler-glib poppler ${GLIB2_LIBRARIES})
if (CAIRO_FOUND)
target_link_libraries(poppler-glib ${CAIRO_LIBRARIES})
endif (CAIRO_FOUND)
install(TARGETS poppler-glib RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
install(FILES
${poppler_glib_public_headers}
${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.h
${CMAKE_CURRENT_BINARY_DIR}/poppler-features.h
DESTINATION include/poppler/glib)
if (GDK_FOUND)
set(test_poppler_glib_SRCS
test-poppler-glib.cc
)
poppler_add_test(test-poppler-glib BUILD_GTK_TESTS ${test_poppler_glib_SRCS})
target_link_libraries(test-poppler-glib poppler-glib ${GDK2_LIBRARIES})
endif (GDK_FOUND)