| all_print_backends = [ |
| 'cups', |
| 'cloudprint', |
| ] |
| |
| enabled_print_backends = get_option('print-backends').split(',') |
| |
| if enabled_print_backends.contains('none') |
| enabled_print_backends = [] |
| elif enabled_print_backends.contains('all') |
| enabled_print_backends = all_print_backends |
| endif |
| |
| # The 'file' print backend cannot be disabled |
| print_backends = ['file'] |
| |
| # Checks to see if we should compile with CUPS backend for GTK |
| enable_cups = enabled_print_backends.contains('cups') |
| if enable_cups |
| cups_dep = dependency('cups', version : '>=2.0', required: true) |
| print_backends += ['cups'] |
| endif |
| |
| # Checks to see if we should compile with cloudprint backend for GTK |
| enable_cloudprint = enabled_print_backends.contains('cloudprint') |
| if enable_cloudprint |
| rest_dep = dependency('rest-0.7', required : true) |
| json_glib_dep = dependency('json-glib-1.0', required : true) |
| if rest_dep.found() and json_glib_dep.found() |
| print_backends += ['cloudprint'] |
| endif |
| endif |
| |
| if not cc.has_header('cairo-pdf.h', dependencies : cairo_dep) |
| error('Cannot find cairo-pdf.h. You must build Cairo with the pdf backend enabled.') |
| endif |
| |
| if os_unix |
| if not cc.has_header('cairo-ps.h', dependencies : cairo_dep) |
| error('Cannot find cairo-ps.h. You must build Cairo with the postscript backend enabled.') |
| endif |
| if not cc.has_header('cairo-svg.h', dependencies : cairo_dep) |
| error('Cannot find cairo-svg.h. You must build Cairo with the svg backend enabled.') |
| endif |
| endif |
| |
| # Automatic fall-back to the lpr backend |
| if not print_backends.contains('cups') |
| print_backends += ['lpr'] |
| endif |
| |
| printbackends_subdir = 'gtk-4.0/@0@/printbackends'.format(gtk_binary_version) |
| printbackends_install_dir = join_paths(get_option('libdir'), printbackends_subdir) |
| |
| cdata.set_quoted('GTK_PRINT_BACKENDS', ','.join(print_backends)) |
| |
| |
| enable_colord = get_option('colord') |
| if enable_colord != 'no' |
| want_colord = enable_colord == 'yes' |
| colord_dep = dependency('colord', version: '>= 0.1.9', required: want_colord) |
| cdata.set('HAVE_COLORD', colord_dep.found()) |
| else |
| colord_dep = [] |
| endif |
| |
| printbackends_args = [ |
| '-DGTK_COMPILATION', |
| '-DGTK_DISABLE_DEPRECATION_WARNINGS', |
| '-DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED', |
| '-D_GLIB_EXTERN=@0@'.format(visibility_define), |
| ] + common_cflags |
| |
| if print_backends.contains('cups') |
| shared_module('printbackend-cups', |
| 'gtkprintbackendcups.c', |
| 'gtkprintercups.c', |
| 'gtkcupsutils.c', |
| 'gtkcupssecretsutils.c', |
| c_args: printbackends_args, |
| dependencies: [libgtk_dep, cups_dep, colord_dep], |
| install_dir: printbackends_install_dir, |
| install : true) |
| endif |
| |
| if print_backends.contains('cloudprint') |
| shared_module('printbackend-cloudprint', |
| 'gtkprintbackendcloudprint.c', |
| 'gtkprintercloudprint.c', |
| 'gtkcloudprintaccount.c', |
| c_args: printbackends_args, |
| dependencies: [ libgtk_dep, rest_dep, json_glib_dep ], |
| install_dir: printbackends_install_dir, |
| install : true) |
| endif |
| |
| if print_backends.contains('file') |
| shared_module('printbackend-file', |
| 'gtkprintbackendfile.c', |
| c_args: printbackends_args, |
| dependencies: libgtk_dep, |
| install_dir: printbackends_install_dir, |
| install : true) |
| endif |
| |
| if print_backends.contains('lpr') |
| shared_module('printbackend-lpr', |
| 'gtkprintbackendlpr.c', |
| c_args: printbackends_args, |
| dependencies: libgtk_dep, |
| install_dir: printbackends_install_dir, |
| install : true) |
| endif |