Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions ci_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -1311,6 +1311,53 @@
"pkgconf:tests=disabled"
]
},
"poppler": {
"_comment": [
"- fontconfig warns on v1 wraps; fixed in next release",
"- alpine stable doesn't know gpgmepp-dev, yet",
"- skip old dependency for Qt5 wrapper"
],
"build_options": [
"cairo:fontconfig=enabled"
],
"alpine_packages": [
"cairo-dev",
"glib-dev",
"nss-dev",
"qt6-qtbase-dev"
],
"debian_packages": [
"libcairo2-dev",
"libglib2.0-dev",
"libgpgmepp-dev",
"libnss3-dev",
"qt6-base-dev"
],
"brew_packages": [
"boost",
"gpgmepp",
"nss",
"qt@6"
],
"msys_packages": [
"boost",
"nss",
"qt6-base"
],
"build_options": [
"poppler:gobject_introspection=disabled"
],
"skip_dependency_check": [
"poppler-cpp",
"poppler-glib",
"poppler-qt5",
"poppler-qt6"
],
"skip_program_check": [
"pdftocairo"
],
"fatal_warnings": false
},
"protobuf": {
"_comment": "Getting patched version elsewhere until abseil-cpp/issues/1510 is fixed, because cannot patch wrapdb version",
"msys_packages": [
Expand Down
27 changes: 27 additions & 0 deletions releases.json
Original file line number Diff line number Diff line change
Expand Up @@ -3696,6 +3696,33 @@
"1.9.0-1"
]
},
"poppler": {
"dependency_names": [
"poppler",
"poppler-cpp",
"poppler-glib",
"poppler-qt5",
"poppler-qt6"
],
"program_names": [
"pdfattach",
"pdfdetach",
"pdffonts",
"pdfimages",
"pdfinfo",
"pdfseparate",
"pdfsig",
"pdftocairo",
"pdftohtml",
"pdftoppm",
"pdftops",
"pdftotext",
"pdfunite"
],
"versions": [
"26.03.0-1"
]
},
"protobuf": {
"dependency_names": [
"protobuf-lite",
Expand Down
1 change: 0 additions & 1 deletion subprojects/glib.wrap
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
[wrap-file]
directory = glib-2.86.4

source_url = https://download.gnome.org/sources/glib/2.86/glib-2.86.4.tar.xz
source_fallback_url = https://ftp.acc.umu.se/pub/gnome/sources/glib/2.86/glib-2.86.4.tar.xz
source_filename = glib-2.86.4.tar.xz
Expand Down
95 changes: 95 additions & 0 deletions subprojects/packagefiles/poppler/cpp/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
if iconv_dep.found()
poppler_cpp_library_version = '3.0.0'
poppler_cpp_library_so_version = '3'

poppler_cpp_library_cpp_arguments = []
if get_option('default_library') == 'static'
poppler_cpp_library_cpp_arguments += '-DPOPPLER_CPP_STATIC_DEFINE'
else
poppler_cpp_library_cpp_arguments += '-DPOPPLER_CPP_EXPORTS'
endif

poppler_cpp_library_dependencies = [
iconv_dep,
poppler_library_dep,
]

poppler_cpp_library_include_directories = include_directories('.')

poppler_cpp_library_sources = [
'poppler-destination.cpp',
'poppler-document.cpp',
'poppler-embedded-file.cpp',
'poppler-font.cpp',
'poppler-global.cpp',
'poppler-image.cpp',
'poppler-page.cpp',
'poppler-page-renderer.cpp',
'poppler-page-transition.cpp',
'poppler-private.cpp',
'poppler-rectangle.cpp',
'poppler-toc.cpp',
'poppler-version.cpp',
]
poppler_cpp_library_sources += configure_file(
configuration: poppler_configuration,
input: 'poppler-version.h.in',
output: 'poppler-version.h',
install: true,
install_dir: get_option('includedir') / meson.project_name() / 'cpp',
)
poppler_cpp_library_sources += configure_file(
input: poppler_exports_h_in,
output: 'poppler_cpp_export.h',
configuration: {
'NAME': 'CPP',
'PUBLIC_DEFINE': 'POPPLER_CPP_EXPORT',
},
install: true,
install_dir: get_option('includedir') / meson.project_name() / 'cpp',
)

poppler_cpp_library = library(
'poppler-cpp',
cpp_args: poppler_cpp_library_cpp_arguments,
dependencies: poppler_cpp_library_dependencies,
include_directories: poppler_cpp_library_include_directories,
install: true,
sources: poppler_cpp_library_sources,
soversion: poppler_cpp_library_so_version,
version: poppler_cpp_library_version,
)

pkgconfig_module.generate(
poppler_cpp_library,
description: 'C++ wrapper for Poppler PDF rendering library.',
)

poppler_cpp_library_dep = declare_dependency(
link_with: poppler_cpp_library,
dependencies: poppler_cpp_library_dependencies,
include_directories: poppler_cpp_library_include_directories,
)

meson.override_dependency('poppler-cpp', poppler_cpp_library_dep)

install_headers(
'poppler-destination.h',
'poppler-document.h',
'poppler-embedded-file.h',
'poppler-font.h',
'poppler-font-private.h',
'poppler-global.h',
'poppler-image.h',
'poppler-page.h',
'poppler-page-renderer.h',
'poppler-page-transition.h',
'poppler-rectangle.h',
'poppler-toc.h',
subdir: meson.project_name() / 'cpp',
)

subdir('tests')
endif

summary('C++ wrapper', iconv_dep.found())
15 changes: 15 additions & 0 deletions subprojects/packagefiles/poppler/cpp/tests/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
poppler_dump_executable = executable(
'poppler-dump',
dependencies: [poppler_cpp_library_dep],
include_directories: utils_include_directory,
sources: ['poppler-dump.cpp', utils_parseargs_cc],
)

poppler_render_executable = executable(
'poppler-render',
dependencies: [poppler_cpp_library_dep],
include_directories: utils_include_directory,
sources: ['poppler-render.cpp', utils_parseargs_cc],
)

# @todo fuzz tests
32 changes: 32 additions & 0 deletions subprojects/packagefiles/poppler/glib/demo/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
if gtk3_dep.found()
poppler_glib_demo_sources = files(
'annots.c',
'attachments.c',
'find.c',
'fonts.c',
'forms.c',
'images.c',
'info.cc',
'layers.c',
'links.c',
'main.c',
'outline.c',
'page.c',
'print.c',
'render.c',
'selections.c',
'signature.c',
'taggedstruct.c',
'text.c',
'transitions.c',
'utils.c',
)

poppler_glib_demo_executable = executable(
'poppler-glib-demo',
sources: poppler_glib_demo_sources,
dependencies: [poppler_glib_library_dep, gtk3_dep],
)
endif

summary(' GLib demo', gtk3_dep.found())
145 changes: 145 additions & 0 deletions subprojects/packagefiles/poppler/glib/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
if building_glib_wrapper
poppler_glib_library_version = '8.31.0'
poppler_glib_library_so_version = '8'

poppler_glib_library_include_directories = include_directories('.')

poppler_glib_library_sources = [
poppler_cairo_sources,
'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',
]
poppler_glib_library_features_h = configure_file(
configuration: poppler_configuration,
input: 'poppler-features.h.cmake',
output: 'poppler-features.h',
format: 'cmake',
install: true,
install_dir: get_option('includedir') / meson.project_name() / 'glib',
)
poppler_glib_library_sources += poppler_glib_library_features_h
poppler_glib_library_macros_h = configure_file(
input: poppler_exports_h_in,
output: 'poppler-macros.h',
configuration: {
'NAME': 'GLIB',
'PUBLIC_DEFINE': 'POPPLER_PUBLIC',
},
install: true,
install_dir: get_option('includedir') / meson.project_name() / 'blib',
)
poppler_glib_library_sources += poppler_glib_library_macros_h

poppler_glib_library_headers = files(
'poppler-action.h',
'poppler-annot.h',
'poppler-attachment.h',
'poppler-date.h',
'poppler-document.h',
'poppler-form-field.h',
'poppler-layer.h',
'poppler-media.h',
'poppler-movie.h',
'poppler-page.h',
'poppler-structure-element.h',
'poppler.h',
)

gnome_module = import('gnome')
poppler_glib_library_enums = gnome_module.mkenums(
'bogus',
c_template: 'poppler-enums.c.template',
h_template: 'poppler-enums.h.template',
install_header: true,
install_dir: get_option('includedir') / meson.project_name() / 'glib',
sources: poppler_glib_library_headers,
)
poppler_glib_library_sources += poppler_glib_library_enums

poppler_glib_library_cpp_arguments = []
if get_option('default_library') == 'static'
poppler_glib_library_cpp_arguments += '-DPOPPLER_GLIB_STATIC_DEFINE'
else
poppler_glib_library_cpp_arguments += '-DPOPPLER_GLIB_EXPORTS'
endif

poppler_glib_library_dependencies = [
cairo_dep,
gio_dep,
glib_dep,
gobject_dep,
poppler_library_dep,
]

poppler_glib_library = library(
'poppler-glib',
cpp_args: poppler_glib_library_cpp_arguments,
dependencies: poppler_glib_library_dependencies,
include_directories: poppler_glib_library_include_directories,
install: true,
sources: poppler_glib_library_sources,
soversion: poppler_glib_library_so_version,
version: poppler_glib_library_version,
)

pkgconfig_module.generate(
poppler_glib_library,
description: 'GLib wrapper for Poppler PDF rendering library.',
)

poppler_glib_library_dep = declare_dependency(
link_with: poppler_glib_library,
dependencies: poppler_glib_library_dependencies,
include_directories: poppler_glib_library_include_directories,
sources: [
poppler_glib_library_enums,
poppler_glib_library_features_h,
poppler_glib_library_macros_h,
],
)

meson.override_dependency('poppler-glib', poppler_glib_library_dep)

install_headers(
poppler_glib_library_headers,
subdir: meson.project_name() / 'glib',
)

if get_option('gobject_introspection').allowed() and get_option(
'default_library',
) == 'shared' or get_option(
'default_library',
) == 'both'
summary(' GObject introspection', true)
gnome_module.generate_gir(
poppler_glib_library,
namespace: 'Poppler',
nsversion: '0.18',
includes: ['GObject-2.0', 'Gio-2.0', 'cairo-1.0'],
sources: poppler_glib_library_sources + poppler_glib_library_headers,
header: 'poppler.h',
install: true,
)
else
summary(' GObject introspection', false)
endif

# @todo Gtk docs

subdir('tests')
subdir('demo')
endif

summary('GLib wrapper', building_glib_wrapper)
Loading
Loading