2018-02-14 13:55:32 +00:00
|
|
|
all_print_backends = [
|
|
|
|
'cups',
|
|
|
|
'cloudprint',
|
|
|
|
]
|
|
|
|
|
2020-08-21 23:36:17 +00:00
|
|
|
enabled_print_backends = get_option('print').split(',')
|
2018-02-14 13:55:32 +00:00
|
|
|
|
|
|
|
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
|
2017-03-22 16:48:56 +00:00
|
|
|
print_backends = ['file']
|
|
|
|
|
2019-02-05 09:30:33 +00:00
|
|
|
# Checks to see if we should compile with CUPS backend for GTK
|
2018-02-14 13:55:32 +00:00
|
|
|
enable_cups = enabled_print_backends.contains('cups')
|
2018-02-19 02:06:11 +00:00
|
|
|
if enable_cups
|
2019-07-01 19:52:06 +00:00
|
|
|
cups_dep = dependency('cups', version : '>=2.0', required: true)
|
|
|
|
print_backends += ['cups']
|
2017-03-22 16:48:56 +00:00
|
|
|
endif
|
|
|
|
|
2019-02-05 09:30:33 +00:00
|
|
|
# Checks to see if we should compile with cloudprint backend for GTK
|
2018-02-14 13:55:32 +00:00
|
|
|
enable_cloudprint = enabled_print_backends.contains('cloudprint')
|
2018-02-19 02:06:11 +00:00
|
|
|
if enable_cloudprint
|
2018-03-18 18:08:28 +00:00
|
|
|
rest_dep = dependency('rest-0.7', required : true)
|
|
|
|
json_glib_dep = dependency('json-glib-1.0', required : true)
|
2017-03-22 16:48:56 +00:00
|
|
|
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
|
|
|
|
|
2018-02-14 13:55:32 +00:00
|
|
|
# Automatic fall-back to the lpr backend
|
2018-02-16 02:53:51 +00:00
|
|
|
if not print_backends.contains('cups')
|
2017-03-22 16:48:56 +00:00
|
|
|
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)
|
|
|
|
|
2017-03-22 18:15:17 +00:00
|
|
|
cdata.set_quoted('GTK_PRINT_BACKENDS', ','.join(print_backends))
|
|
|
|
|
2018-03-12 10:02:24 +00:00
|
|
|
printbackends_args = [
|
|
|
|
'-DGTK_COMPILATION',
|
|
|
|
'-DGTK_DISABLE_DEPRECATION_WARNINGS',
|
|
|
|
'-DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED',
|
2020-06-04 08:27:56 +00:00
|
|
|
'-D_GLIB_EXTERN=@0@'.format(visibility_define),
|
2020-05-18 09:38:02 +00:00
|
|
|
] + common_cflags
|
2018-03-12 10:02:24 +00:00
|
|
|
|
2018-03-11 16:18:16 +00:00
|
|
|
if print_backends.contains('cups')
|
|
|
|
shared_module('printbackend-cups',
|
|
|
|
'gtkprintbackendcups.c',
|
|
|
|
'gtkprintercups.c',
|
|
|
|
'gtkcupsutils.c',
|
|
|
|
'gtkcupssecretsutils.c',
|
2018-03-12 10:02:24 +00:00
|
|
|
c_args: printbackends_args,
|
2019-07-01 19:52:06 +00:00
|
|
|
dependencies: [libgtk_dep, cups_dep, colord_dep],
|
2018-03-11 16:18:16 +00:00
|
|
|
install_dir: printbackends_install_dir,
|
|
|
|
install : true)
|
|
|
|
endif
|
|
|
|
|
|
|
|
if print_backends.contains('cloudprint')
|
|
|
|
shared_module('printbackend-cloudprint',
|
|
|
|
'gtkprintbackendcloudprint.c',
|
|
|
|
'gtkprintercloudprint.c',
|
|
|
|
'gtkcloudprintaccount.c',
|
2018-03-12 10:02:24 +00:00
|
|
|
c_args: printbackends_args,
|
2018-03-11 16:18:16 +00:00
|
|
|
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',
|
2018-03-12 10:02:24 +00:00
|
|
|
c_args: printbackends_args,
|
2018-03-11 16:18:16 +00:00
|
|
|
dependencies: libgtk_dep,
|
|
|
|
install_dir: printbackends_install_dir,
|
|
|
|
install : true)
|
|
|
|
endif
|
|
|
|
|
|
|
|
if print_backends.contains('lpr')
|
|
|
|
shared_module('printbackend-lpr',
|
|
|
|
'gtkprintbackendlpr.c',
|
2018-03-12 10:02:24 +00:00
|
|
|
c_args: printbackends_args,
|
2018-03-11 16:18:16 +00:00
|
|
|
dependencies: libgtk_dep,
|
|
|
|
install_dir: printbackends_install_dir,
|
|
|
|
install : true)
|
2018-03-12 10:02:24 +00:00
|
|
|
endif
|