forked from AuroraMiddleware/gtk
ee448db031
On MacOS the shared library and loadable module suffix is different. While dlopen will load a shared module just fine, Gtk's loader and query tools don't know to look for them so it's important to give loadable modules the .so suffix.
168 lines
5.0 KiB
Meson
168 lines
5.0 KiB
Meson
# Print backend config: 'auto' means all backends we have dependencies for,
|
|
# the specific backend names mean we should fail if dependencies are missing
|
|
all_print_backends = [
|
|
'cloudprint',
|
|
'cups',
|
|
'file',
|
|
'lpr',
|
|
'papi',
|
|
'test',
|
|
]
|
|
|
|
auto_print_backends = []
|
|
foreach backend: all_print_backends
|
|
if backend != 'test' and os_unix
|
|
auto_print_backends += backend
|
|
endif
|
|
endforeach
|
|
|
|
print_strict_deps = true
|
|
if get_option('print_backends') == 'auto'
|
|
enabled_print_backends = auto_print_backends
|
|
print_strict_deps = false
|
|
else
|
|
wanted_print_backends = get_option('print_backends').split(',')
|
|
enabled_print_backends = []
|
|
foreach backend: wanted_print_backends
|
|
if backend != ''
|
|
if not all_print_backends.contains(backend)
|
|
error('print backend \'@0@\' unknown'.format(backend))
|
|
endif
|
|
enabled_print_backends += backend
|
|
endif
|
|
endforeach
|
|
endif
|
|
|
|
print_backends = []
|
|
|
|
if not enabled_print_backends.contains('file')
|
|
if os_unix
|
|
error('\'file\' print backed needs to be enabled')
|
|
endif
|
|
else
|
|
print_backends += ['file']
|
|
endif
|
|
|
|
if enabled_print_backends.contains('lpr')
|
|
print_backends += ['lpr']
|
|
endif
|
|
|
|
if enabled_print_backends.contains('test')
|
|
print_backends += ['test']
|
|
endif
|
|
|
|
if enabled_print_backends.contains('papi')
|
|
# TODO
|
|
if print_strict_deps
|
|
error('\'papi\' backend not supported with meson yet')
|
|
endif
|
|
endif
|
|
|
|
if enabled_print_backends.contains('cloudprint')
|
|
rest_dep = dependency('rest-0.7', required : print_strict_deps)
|
|
json_glib_dep = dependency('json-glib-1.0', required : print_strict_deps)
|
|
if rest_dep.found() and json_glib_dep.found()
|
|
print_backends += ['cloudprint']
|
|
else
|
|
message('\'cloudprint\' backend disabled: missing dependencies')
|
|
endif
|
|
endif
|
|
|
|
if enabled_print_backends.contains('cups')
|
|
cups_dep = dependency('cups', version : '>=1.7', required: print_strict_deps)
|
|
if cups_dep.found()
|
|
cups_extra_deps = []
|
|
|
|
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() ? 1 : false)
|
|
cups_extra_deps += [colord_dep]
|
|
endif
|
|
|
|
print_backends += ['cups']
|
|
else
|
|
message('\'cups\' backend disabled: missing dependencies')
|
|
endif
|
|
endif
|
|
|
|
cdata.set_quoted('GTK_PRINT_BACKENDS', ','.join(print_backends))
|
|
|
|
disabled_print_backends = []
|
|
foreach backend : all_print_backends
|
|
if not print_backends.contains(backend)
|
|
disabled_print_backends += [backend]
|
|
endif
|
|
endforeach
|
|
|
|
# Building
|
|
|
|
printbackends_args = [
|
|
'-DGTK_COMPILATION',
|
|
'-DGTK_DISABLE_DEPRECATION_WARNINGS',
|
|
'-DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED',
|
|
]
|
|
printbackends_subdir = 'gtk-3.0/@0@/printbackends'.format(gtk_binary_version)
|
|
printbackends_install_dir = join_paths(get_option('libdir'), printbackends_subdir)
|
|
|
|
if print_backends.contains('file')
|
|
shared_module('printbackend-file',
|
|
'file/gtkprintbackendfile.c',
|
|
c_args: printbackends_args,
|
|
dependencies: libgtk_dep,
|
|
name_suffix: module_suffix,
|
|
install_dir: printbackends_install_dir,
|
|
name_suffix: module_suffix,
|
|
install : true)
|
|
endif
|
|
|
|
if print_backends.contains('lpr')
|
|
shared_module('printbackend-lpr',
|
|
'lpr/gtkprintbackendlpr.c',
|
|
c_args: printbackends_args,
|
|
dependencies: libgtk_dep,
|
|
name_suffix: module_suffix,
|
|
install_dir: printbackends_install_dir,
|
|
name_suffix: module_suffix,
|
|
install : true)
|
|
endif
|
|
|
|
if print_backends.contains('test')
|
|
shared_module('printbackend-test',
|
|
'test/gtkprintbackendtest.c',
|
|
c_args: printbackends_args,
|
|
dependencies: libgtk_dep,
|
|
name_suffix: module_suffix,
|
|
install_dir: printbackends_install_dir,
|
|
name_suffix: module_suffix,
|
|
install : true)
|
|
endif
|
|
|
|
if print_backends.contains('cloudprint')
|
|
shared_module('printbackend-cloudprint',
|
|
'cloudprint/gtkprintbackendcloudprint.c',
|
|
'cloudprint/gtkprintercloudprint.c',
|
|
'cloudprint/gtkcloudprintaccount.c',
|
|
c_args: printbackends_args,
|
|
dependencies: [ libgtk_dep, rest_dep, json_glib_dep ],
|
|
name_suffix: module_suffix,
|
|
install_dir: printbackends_install_dir,
|
|
name_suffix: module_suffix,
|
|
install : true)
|
|
endif
|
|
|
|
if print_backends.contains('cups')
|
|
shared_module('printbackend-cups',
|
|
'cups/gtkprintbackendcups.c',
|
|
'cups/gtkprintercups.c',
|
|
'cups/gtkcupsutils.c',
|
|
'cups/gtkcupssecretsutils.c',
|
|
c_args: printbackends_args,
|
|
dependencies: [libgtk_dep, cups_dep] + cups_extra_deps,
|
|
name_suffix: module_suffix,
|
|
install_dir: printbackends_install_dir,
|
|
name_suffix: module_suffix,
|
|
install : true)
|
|
endif
|