|
| 1 | +if building_glib_wrapper |
| 2 | + poppler_glib_library_version = '8.31.0' |
| 3 | + poppler_glib_library_so_version = '8' |
| 4 | + |
| 5 | + poppler_glib_library_include_directories = include_directories('.') |
| 6 | + |
| 7 | + poppler_glib_library_sources = [ |
| 8 | + poppler_cairo_sources, |
| 9 | + 'poppler-action.cc', |
| 10 | + 'poppler-date.cc', |
| 11 | + 'poppler-document.cc', |
| 12 | + 'poppler-page.cc', |
| 13 | + 'poppler-attachment.cc', |
| 14 | + 'poppler-form-field.cc', |
| 15 | + 'poppler-annot.cc', |
| 16 | + 'poppler-layer.cc', |
| 17 | + 'poppler-movie.cc', |
| 18 | + 'poppler-media.cc', |
| 19 | + 'poppler.cc', |
| 20 | + 'poppler-cached-file-loader.cc', |
| 21 | + 'poppler-input-stream.cc', |
| 22 | + 'poppler-structure-element.cc', |
| 23 | + ] |
| 24 | + poppler_glib_library_features_h = configure_file( |
| 25 | + configuration: poppler_configuration, |
| 26 | + input: 'poppler-features.h.cmake', |
| 27 | + output: 'poppler-features.h', |
| 28 | + format: 'cmake', |
| 29 | + install: true, |
| 30 | + install_dir: get_option('includedir') / meson.project_name() / 'glib', |
| 31 | + ) |
| 32 | + poppler_glib_library_sources += poppler_glib_library_features_h |
| 33 | + poppler_glib_library_macros_h = configure_file( |
| 34 | + input: poppler_exports_h_in, |
| 35 | + output: 'poppler-macros.h', |
| 36 | + configuration: { |
| 37 | + 'NAME': 'GLIB', |
| 38 | + 'PUBLIC_DEFINE': 'POPPLER_PUBLIC', |
| 39 | + }, |
| 40 | + install: true, |
| 41 | + install_dir: get_option('includedir') / meson.project_name() / 'blib', |
| 42 | + ) |
| 43 | + poppler_glib_library_sources += poppler_glib_library_macros_h |
| 44 | + |
| 45 | + poppler_glib_library_headers = files( |
| 46 | + 'poppler-action.h', |
| 47 | + 'poppler-annot.h', |
| 48 | + 'poppler-attachment.h', |
| 49 | + 'poppler-date.h', |
| 50 | + 'poppler-document.h', |
| 51 | + 'poppler-form-field.h', |
| 52 | + 'poppler-layer.h', |
| 53 | + 'poppler-media.h', |
| 54 | + 'poppler-movie.h', |
| 55 | + 'poppler-page.h', |
| 56 | + 'poppler-structure-element.h', |
| 57 | + 'poppler.h', |
| 58 | + ) |
| 59 | + |
| 60 | + gnome_module = import('gnome') |
| 61 | + poppler_glib_library_enums = gnome_module.mkenums( |
| 62 | + 'bogus', |
| 63 | + c_template: 'poppler-enums.c.template', |
| 64 | + h_template: 'poppler-enums.h.template', |
| 65 | + install_header: true, |
| 66 | + install_dir: get_option('includedir') / meson.project_name() / 'glib', |
| 67 | + sources: poppler_glib_library_headers, |
| 68 | + ) |
| 69 | + poppler_glib_library_sources += poppler_glib_library_enums |
| 70 | + |
| 71 | + poppler_glib_library_cpp_arguments = [] |
| 72 | + if get_option('default_library') == 'static' |
| 73 | + poppler_glib_library_cpp_arguments += '-DPOPPLER_GLIB_STATIC_DEFINE' |
| 74 | + else |
| 75 | + poppler_glib_library_cpp_arguments += '-DPOPPLER_GLIB_EXPORTS' |
| 76 | + endif |
| 77 | + |
| 78 | + poppler_glib_library_dependencies = [ |
| 79 | + cairo_dep, |
| 80 | + gio_dep, |
| 81 | + glib_dep, |
| 82 | + gobject_dep, |
| 83 | + poppler_library_dep, |
| 84 | + ] |
| 85 | + |
| 86 | + poppler_glib_library = library( |
| 87 | + 'poppler-glib', |
| 88 | + cpp_args: poppler_glib_library_cpp_arguments, |
| 89 | + dependencies: poppler_glib_library_dependencies, |
| 90 | + include_directories: poppler_glib_library_include_directories, |
| 91 | + install: true, |
| 92 | + sources: poppler_glib_library_sources, |
| 93 | + soversion: poppler_glib_library_so_version, |
| 94 | + version: poppler_glib_library_version, |
| 95 | + ) |
| 96 | + |
| 97 | + pkgconfig_module.generate( |
| 98 | + poppler_glib_library, |
| 99 | + description: 'GLib wrapper for Poppler PDF rendering library.', |
| 100 | + ) |
| 101 | + |
| 102 | + poppler_glib_library_dep = declare_dependency( |
| 103 | + link_with: poppler_glib_library, |
| 104 | + dependencies: poppler_glib_library_dependencies, |
| 105 | + include_directories: poppler_glib_library_include_directories, |
| 106 | + sources: [ |
| 107 | + poppler_glib_library_enums, |
| 108 | + poppler_glib_library_features_h, |
| 109 | + poppler_glib_library_macros_h, |
| 110 | + ], |
| 111 | + ) |
| 112 | + |
| 113 | + meson.override_dependency('poppler-glib', poppler_glib_library_dep) |
| 114 | + |
| 115 | + install_headers( |
| 116 | + poppler_glib_library_headers, |
| 117 | + subdir: meson.project_name() / 'glib', |
| 118 | + ) |
| 119 | + |
| 120 | + if get_option('gobject_introspection').allowed() and get_option( |
| 121 | + 'default_library', |
| 122 | + ) == 'shared' or get_option( |
| 123 | + 'default_library', |
| 124 | + ) == 'both' |
| 125 | + summary(' GObject introspection', true) |
| 126 | + gnome_module.generate_gir( |
| 127 | + poppler_glib_library, |
| 128 | + namespace: 'Poppler', |
| 129 | + nsversion: '0.18', |
| 130 | + includes: ['GObject-2.0', 'Gio-2.0', 'cairo-1.0'], |
| 131 | + sources: poppler_glib_library_sources + poppler_glib_library_headers, |
| 132 | + header: 'poppler.h', |
| 133 | + install: true, |
| 134 | + ) |
| 135 | + else |
| 136 | + summary(' GObject introspection', false) |
| 137 | + endif |
| 138 | + |
| 139 | + # @todo Gtk docs |
| 140 | + |
| 141 | + subdir('tests') |
| 142 | + subdir('demo') |
| 143 | +endif |
| 144 | + |
| 145 | +summary('GLib wrapper', building_glib_wrapper) |
0 commit comments