Spaces:
Running
Running
File size: 5,667 Bytes
5cee033 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
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) 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) |