diff options
author | Jens Georg <mail@jensge.org> | 2018-11-28 19:39:06 +0000 |
---|---|---|
committer | Jens Georg <mail@jensge.org> | 2018-11-28 19:39:06 +0000 |
commit | 86bfaaddc3288f301565093278c58c5d595049ec (patch) | |
tree | 07371b988003c9bddfd784630443b91a58c7a3a3 | |
parent | 502ed4cb90c77df1407b6619e6a2cc307586403f (diff) | |
download | rygel-86bfaaddc3288f301565093278c58c5d595049ec.tar.gz |
Port build system to meson
46 files changed, 1632 insertions, 8 deletions
diff --git a/data/meson.build b/data/meson.build new file mode 100644 index 00000000..f686c1ce --- /dev/null +++ b/data/meson.build @@ -0,0 +1,63 @@ +install_data('rygel.conf', install_dir : rygel_sysconfdir) +install_data(join_paths('icons', '128x128', 'rygel.png'), install_dir : join_paths(rygel_icondir, '128x128', 'apps')) +install_data(join_paths('icons', '120x120', 'rygel.png'), install_dir : rygel_bigicondir) +install_data(join_paths('icons', '120x120', 'rygel.jpg'), install_dir : rygel_bigicondir) +install_data(join_paths('icons', '48x48', 'rygel.png'), install_dir : rygel_smallicondir) +install_data(join_paths('icons', '48x48', 'rygel.jpg'), install_dir : rygel_smallicondir) +install_data(join_paths('icons', '32x32', 'rygel.png'), install_dir : join_paths(rygel_icondir, '32x32', 'apps')) +install_data(join_paths('icons', '48x48', 'rygel.png'), install_dir : join_paths(rygel_icondir, '48x48', 'apps')) +install_data(join_paths('icons', 'scalable', 'rygel.svg'), install_dir : join_paths(rygel_icondir, 'scalable', 'apps')) +install_data(join_paths('icons', 'scalable', 'rygel-full.svg'), install_dir : join_paths(rygel_icondir, 'scalable', 'apps')) + +install_data('rygel-preferences.ui', install_dir : join_paths(rygel_datadir, 'rygel')) + +data_conf = configuration_data() +data_conf.set('bindir', join_paths(get_option('prefix'), get_option('bindir'))) +data_conf.set('VERSION', meson.project_version()) + +configure_file(input: 'org.gnome.Rygel1.service.in', + output: 'org.gnome.Rygel1.service', + configuration: data_conf, + install_dir : join_paths(rygel_datadir, 'dbus-1', 'services')) + +systemd = dependency('systemd', required : false) +systemd_user_unit_dir = join_paths(get_option('prefix'), 'lib/systemd/user/') +if systemd.found() + systemd_user_unit_dir = systemd.get_pkgconfig_variable('systemduserunitdir') +endif + +if not (get_option('systemd-user-units-dir') == 'off') + if not (get_option('systemd-user-units-dir') == 'auto') + systemd_user_unit_dir = get_option('systemd-user-units-dir') + endif + + configure_file(input: 'rygel.service.in', + output: 'rygel.service', + configuration: data_conf, + install_dir : systemd_user_unit_dir) +endif + +rygel_desktop_preferences_in = configure_file(input: 'rygel-preferences.desktop.in.in', + output : 'rygel-preferences.desktop.in', + configuration : data_conf) + +rygel_desktop_in = configure_file(input: 'rygel.desktop.in.in', + output : 'rygel.desktop.in', + configuration : data_conf) + +i18n.merge_file(input: rygel_desktop_in, + output: 'rygel.desktop', + po_dir : join_paths('..','po'), + type: 'desktop', + install : true, + install_dir: join_paths(get_option('datadir'), 'applications')) + +i18n.merge_file(input: rygel_desktop_preferences_in, + output: 'rygel-preferences.desktop', + po_dir : join_paths('..','po'), + type: 'desktop', + install : true, + install_dir: join_paths(get_option('datadir'), 'applications')) + +subdir('presets') +subdir('xml') diff --git a/data/presets/meson.build b/data/presets/meson.build new file mode 100644 index 00000000..d2088d9d --- /dev/null +++ b/data/presets/meson.build @@ -0,0 +1,12 @@ +install_data( + ['avenc_aac.prs', + 'avenc_mp2.prs', + 'avenc_mpeg2video.prs', + 'avenc_wmav1.prs', + 'avenc_wmv1.prs', + 'GstFaac.prs', + 'GstLameMP3Enc.prs', + 'GstMP4Mux.prs', + 'GstTwoLame.prs', + 'GstX264Enc.prs'], + install_dir : rygel_presetdir) diff --git a/data/xml/meson.build b/data/xml/meson.build new file mode 100644 index 00000000..85c0d740 --- /dev/null +++ b/data/xml/meson.build @@ -0,0 +1,132 @@ +xml_processor = find_program('process-xml.py') +xml_dir = join_paths(rygel_datadir, 'rygel', 'xml') + +server_xml = configure_file(input: 'MediaServer3.xml.in.in', + output: 'MediaServer3.xml.in', + configuration: plugin_config) + +renderer_xml = configure_file(input: 'MediaRenderer2.xml.in.in', + output: 'MediaRenderer2.xml.in', + configuration: plugin_config) + +ruih_xml = configure_file(input: 'RuihServer2.xml.in.in', + output: 'RuihServer2.xml.in', + configuration: plugin_config) + + +# Fixme: How to install this... +#xml_files = xml_processor.process(['EnergyManagement.xml.in', +# 'ContentDirectory.xml.in', +# 'ContentDirectory-NoTrack.xml.in', +# 'ConnectionManager.xml.in', +# 'RemoteUIServerService.xml.in', +# 'AVTransport2.xml.in', +# 'RenderingControl2.xml.in', +# 'UIList.xml.in', +# 'BasicManagement2.xml.in', +# 'X_MS_MediaReceiverRegistrar1.xml.in'], +# install: true, +# install_dir : xml_dir) + +custom_target('EnergyManagement.xml', + input: 'EnergyManagement.xml.in', + output: 'EnergyManagement.xml', + capture: true, + command : [xml_processor, '@INPUT@'], + install: true, + install_dir : xml_dir) + +custom_target('MediaServer3.xml', + input: server_xml, + output: 'MediaServer3.xml', + capture: true, + command : [xml_processor, '@INPUT@'], + install: true, + install_dir : xml_dir) + +custom_target('MediaRenderer2.xml', + input: renderer_xml, + output: 'MediaRenderer2.xml', + capture: true, + command : [xml_processor, '@INPUT@'], + install: true, + install_dir : xml_dir) + +custom_target('ContentDirectory.xml', + input: 'ContentDirectory.xml.in', + output: 'ContentDirectory.xml', + capture: true, + command : [xml_processor, '@INPUT@'], + install: true, + install_dir : xml_dir) + +custom_target('RuihServer2.xml', + input: ruih_xml, + output: 'RuihServer2.xml', + capture: true, + command : [xml_processor, '@INPUT@'], + install: true, + install_dir : xml_dir) + +custom_target('ContentDirectory-NoTrack.xml', + input: 'ContentDirectory-NoTrack.xml.in', + output: 'ContentDirectory-NoTrack.xml', + capture: true, + command : [xml_processor, '@INPUT@'], + install: true, + install_dir : xml_dir) + +custom_target('ConnectionManager.xml', + input: 'ConnectionManager.xml.in', + output: 'ConnectionManager.xml', + capture: true, + command : [xml_processor, '@INPUT@'], + install: true, + install_dir : xml_dir) + +custom_target('RemoteUIServerService.xml', + input: 'RemoteUIServerService.xml.in', + output: 'RemoteUIServerService.xml', + capture: true, + command : [xml_processor, '@INPUT@'], + install: true, + install_dir : xml_dir) +custom_target('AVTransport2.xml', + input: 'AVTransport2.xml.in', + output: 'AVTransport2.xml', + capture: true, + command : [xml_processor, '@INPUT@'], + install: true, + install_dir : xml_dir) + +custom_target('RenderingControl2.xml', + input: 'RenderingControl2.xml.in', + output: 'RenderingControl2.xml', + capture: true, + command : [xml_processor, '@INPUT@'], + install: true, + install_dir : xml_dir) + +custom_target('UIList.xml', + input: 'UIList.xml.in', + output: 'UIList.xml', + capture: true, + command : [xml_processor, '@INPUT@'], + install: true, + install_dir : xml_dir) + +custom_target('BasicManagement2.xml', + input: 'BasicManagement2.xml.in', + output: 'BasicManagement2.xml', + capture: true, + command : [xml_processor, '@INPUT@'], + install: true, + install_dir : xml_dir) + +custom_target('X_MS_MediaReceiverRegistrar1.xml', + input: 'X_MS_MediaReceiverRegistrar1.xml.in', + output: 'X_MS_MediaReceiverRegistrar1.xml', + capture: true, + command : [xml_processor, '@INPUT@'], + install: true, + install_dir : xml_dir) diff --git a/data/xml/process-xml.py b/data/xml/process-xml.py new file mode 100755 index 00000000..8d53e048 --- /dev/null +++ b/data/xml/process-xml.py @@ -0,0 +1,8 @@ +#!/usr/bin/env python3 + +import sys +import re + +with open(sys.argv[1], 'r') as f: + for data in f: + print(data.strip(), end='') diff --git a/doc/man/meson.build b/doc/man/meson.build new file mode 100644 index 00000000..c905df2f --- /dev/null +++ b/doc/man/meson.build @@ -0,0 +1,44 @@ +xsltproc = find_program('xsltproc', required: false) + +if xsltproc.found() + xlstproc_flags = [ + '--nonet', + '--stringparam', 'man.output.quietly', '1', + '--stringparam', 'funcsynopsis.style', 'ansi', + '--stringparam', 'man.th.extra1.suppress', '1', + '--stringparam', 'man.authors.section.enabled', '1', + '--stringparam', 'man.copyright.section.enabled', '1', + ] + + xsltproc_args = [ + xsltproc, + xlstproc_flags, + '-o', '@OUTPUT@', + 'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl', + '@INPUT@', + ] + + man_input_files = [ + 'rygel.xml', + 'rygel.conf.xml' + ] + + man_output_files = [ + 'rygel.1', + 'rygel.conf.5' + ] + + custom_target('man 1 pages', + input: 'rygel.xml', + output: 'rygel.1', + command: xsltproc_args, + install: true, + install_dir: join_paths(get_option('mandir'), 'man1')) + + custom_target('man 5 pages', + input: 'rygel.conf.xml', + output: 'rygel.conf.5', + command: xsltproc_args, + install: true, + install_dir: join_paths(get_option('mandir'), 'man5')) +endif diff --git a/doc/meson.build b/doc/meson.build new file mode 100644 index 00000000..41c733e5 --- /dev/null +++ b/doc/meson.build @@ -0,0 +1,2 @@ +subdir('man') +subdir('reference') diff --git a/doc/reference/librygel-core/meson.build b/doc/reference/librygel-core/meson.build new file mode 100644 index 00000000..12f961a9 --- /dev/null +++ b/doc/reference/librygel-core/meson.build @@ -0,0 +1,57 @@ +if valadoc.found() +core_doc_common_args = [ + '--package-name', 'librygel-core', + '--package-version', '2.6', + '-b', join_paths(meson.source_root(), 'src', 'librygel-core'), + '--target-glib=2.32', + '--pkg', 'rygel-build-config', + '--force', + '--directory', '@OUTPUT@', + '--pkg', 'gio-2.0', + '--pkg', 'gee-0.8', + '--pkg', 'gupnp-1.0', + '--pkg', 'gmodule-2.0', + '--pkg', 'posix' + ] + +custom_target('valadoc-core', + input: core_sources, + output: 'valadoc', + depends : core_lib, + build_by_default : get_option('api-docs'), + command : + [ + valadoc, + core_doc_common_args, + '-o', 'valadoc', + core_sources + ] +) + +if gtkdoc.found() +custom_target('gtkdoc-core', + input: core_sources, + output: 'gtkdoc', + depends : core_lib, + build_by_default : get_option('api-docs'), + command : + [ + valadoc, + '--doclet', 'gtkdoc', + '-o', 'gtkdoc', + core_doc_common_args, + '-X', join_paths(meson.build_root(), 'src/librygel-core/rygel-core.h'), + '-X', '-l', + '-X', join_paths(meson.build_root(), 'src/librygel-core/librygel-core-2.6.so'), + '-b', join_paths(meson.source_root(), 'src', 'librygel-core'), + core_sources + ] +) + +if get_option('api-docs') + install_subdir('gtkdoc/html', + install_dir : join_paths(get_option('datadir'), 'gtk-doc/html/librygel-core'), + strip_directory : true) +endif +endif +endif diff --git a/doc/reference/librygel-db/meson.build b/doc/reference/librygel-db/meson.build new file mode 100644 index 00000000..c2b5d882 --- /dev/null +++ b/doc/reference/librygel-db/meson.build @@ -0,0 +1,65 @@ +if valadoc.found() +db_doc_common_args = [ + '--package-name', 'librygel-db', + '--package-version', '2.6', + '-b', join_paths(meson.source_root(), 'src', 'librygel-db'), + '--vapidir', join_paths(meson.source_root(), 'vapi'), + '--vapidir', join_paths(meson.source_root(), 'src/librygel-core'), + '--vapidir', join_paths(meson.build_root(), 'src/librygel-core'), + '--target-glib=2.32', + '--pkg', 'rygel-build-config', + '--force', + '--directory', '@OUTPUT@', + '--pkg', 'gio-2.0', + '--pkg', 'gee-0.8', + '--pkg', 'gupnp-1.0', + '--pkg', 'gmodule-2.0', + '--pkg', 'posix', + '--pkg', 'sqlite3', + '--pkg', 'gupnp-av-1.0', + '--pkg', 'rygel-core-2.6', +] + +custom_target('valadoc-db', + input: db_sources, + output: 'valadoc', + depends: db_lib, + build_by_default : get_option('api-docs'), + command : + [ + valadoc, + db_doc_common_args, + '-o', 'valadoc', + db_sources + ] +) + +if gtkdoc.found() +custom_target('gtkdoc-db', + input: db_sources, + output: 'gtkdoc', + depends : db_lib, + build_by_default : get_option('api-docs'), + command : + [ + valadoc, + db_doc_common_args, + '--doclet', 'gtkdoc', + '-o', 'gtkdoc', + '-X', join_paths(meson.build_root(), 'src/librygel-db/rygel-db.h'), + '-X', '-l', + '-X', join_paths(meson.build_root(), 'src/librygel-db/librygel-db-2.6.so'), + '-X', '-l', + '-X', join_paths(meson.build_root(), 'src/librygel-core/librygel-core-2.6.so'), + db_sources + ] +) + +if get_option('api-docs') + install_subdir('gtkdoc/html', + install_dir : join_paths(get_option('datadir'), 'gtk-doc/html/librygel-db'), + strip_directory : true) +endif + +endif +endif diff --git a/doc/reference/librygel-renderer-gst/meson.build b/doc/reference/librygel-renderer-gst/meson.build new file mode 100644 index 00000000..44c513ed --- /dev/null +++ b/doc/reference/librygel-renderer-gst/meson.build @@ -0,0 +1,68 @@ +if valadoc.found() +renderer_gst_doc_common_args = [ + '--package-name', 'librygel-renderer-gst', + '--package-version', '2.6', + '-b', join_paths(meson.source_root(), 'src', 'librygel-renderer-gst'), + '--vapidir', join_paths(meson.source_root(), 'vapi'), + '--vapidir', join_paths(meson.source_root(), 'src/librygel-core'), + '--vapidir', join_paths(meson.build_root(), 'src/librygel-core'), + '--vapidir', join_paths(meson.build_root(), 'src', 'librygel-renderer'), + '--target-glib=2.32', + '--pkg', 'rygel-build-config', + '--force', + '--directory', '@OUTPUT@', + '--pkg', 'gio-2.0', + '--pkg', 'gee-0.8', + '--pkg', 'gupnp-1.0', + '--pkg', 'gmodule-2.0', + '--pkg', 'posix', + '--pkg', 'gupnp-av-1.0', + '--pkg', 'rygel-core-2.6', + '--pkg', 'rygel-renderer-2.6', + '--pkg', 'gstreamer-1.0', + '--pkg', 'gstreamer-audio-1.0' +] + +custom_target('valadoc-renderer-gst', + input: renderer_gst_sources, + output: 'valadoc', + depends : renderer_gst_lib, + build_by_default : get_option('api-docs'), + command : + [ + valadoc, + renderer_gst_doc_common_args, + '-o', 'valadoc', + renderer_gst_sources + ] +) + +if gtkdoc.found() +custom_target('gtkdoc-renderer-gst', + input: renderer_gst_sources, + output: 'gtkdoc', + depends : renderer_gst_lib, + build_by_default : get_option('api-docs'), + command : + [ + valadoc, + renderer_gst_doc_common_args, + '--doclet', 'gtkdoc', + '-o', 'gtkdoc', + '-X', join_paths(meson.build_root(), 'src/librygel-renderer/rygel-renderer.h'), + '-X', '-l', + '-X', join_paths(meson.build_root(), 'src/librygel-renderer/librygel-renderer-2.6.so'), + '-X', '-l', + '-X', join_paths(meson.build_root(), 'src/librygel-core/librygel-core-2.6.so'), + '-X', '-l', + '-X', join_paths(meson.build_root(), 'src/librygel-renderer-gst/librygel-renderer-gst-2.6.so'), + renderer_gst_sources + ] +) +if get_option('api-docs') + install_subdir('gtkdoc/html', + install_dir : join_paths(get_option('datadir'), 'gtk-doc/html/librygel-renderer-gst'), + strip_directory : true) +endif +endif +endif diff --git a/doc/reference/librygel-renderer/meson.build b/doc/reference/librygel-renderer/meson.build new file mode 100644 index 00000000..66c43d78 --- /dev/null +++ b/doc/reference/librygel-renderer/meson.build @@ -0,0 +1,62 @@ +if valadoc.found() +renderer_doc_common_args = [ + '--package-name', 'librygel-renderer', + '--package-version', '2.6', + '-b', join_paths(meson.source_root(), 'src', 'librygel-renderer'), + '--vapidir', join_paths(meson.source_root(), 'vapi'), + '--vapidir', join_paths(meson.source_root(), 'src/librygel-core'), + '--vapidir', join_paths(meson.build_root(), 'src/librygel-core'), + '--target-glib=2.32', + '--pkg', 'rygel-build-config', + '--force', + '--directory', '@OUTPUT@', + '--pkg', 'gio-2.0', + '--pkg', 'gee-0.8', + '--pkg', 'gupnp-1.0', + '--pkg', 'gmodule-2.0', + '--pkg', 'posix', + '--pkg', 'gupnp-av-1.0', + '--pkg', 'rygel-core-2.6' +] + +custom_target('valadoc-renderer', + input: renderer_sources, + output: 'valadoc', + depends: renderer_lib, + build_by_default : get_option('api-docs'), + command : + [ + valadoc, + renderer_doc_common_args, + '-o', 'valadoc', + renderer_sources + ] +) + +if gtkdoc.found() +custom_target('gtkdoc-renderer', + input: renderer_sources, + output: 'gtkdoc', + depends : renderer_lib, + build_by_default : get_option('api-docs'), + command : + [ + valadoc, + renderer_doc_common_args, + '--doclet', 'gtkdoc', + '-o', 'gtkdoc', + '-X', join_paths(meson.build_root(), 'src/librygel-renderer/rygel-renderer.h'), + '-X', '-l', + '-X', join_paths(meson.build_root(), 'src/librygel-renderer/librygel-renderer-2.6.so'), + '-X', '-l', + '-X', join_paths(meson.build_root(), 'src/librygel-core/librygel-core-2.6.so'), + renderer_sources + ] +) +if get_option('api-docs') + install_subdir('gtkdoc/html', + install_dir : join_paths(get_option('datadir'), 'gtk-doc/html/librygel-renderer'), + strip_directory : true) +endif +endif +endif diff --git a/doc/reference/librygel-server/meson.build b/doc/reference/librygel-server/meson.build new file mode 100644 index 00000000..6803d41b --- /dev/null +++ b/doc/reference/librygel-server/meson.build @@ -0,0 +1,63 @@ +if valadoc.found() +server_doc_common_args = [ + '--package-name', 'librygel-server', + '--package-version', '2.6', + '-b', join_paths(meson.source_root(), 'src', 'librygel-server'), + '--vapidir', join_paths(meson.source_root(), 'vapi'), + '--vapidir', join_paths(meson.source_root(), 'src/librygel-core'), + '--vapidir', join_paths(meson.build_root(), 'src/librygel-core'), + '--target-glib=2.32', + '--pkg', 'rygel-build-config', + '--force', + '--directory', '@OUTPUT@', + '--pkg', 'gio-2.0', + '--pkg', 'gee-0.8', + '--pkg', 'gupnp-1.0', + '--pkg', 'gmodule-2.0', + '--pkg', 'posix', + '--pkg', 'gupnp-av-1.0', + '--pkg', 'rygel-core-2.6', + '--pkg', 'libmediaart-2.0' +] + +custom_target('valadoc-server', + input: server_sources, + output: 'valadoc', + depends : server_lib, + build_by_default : get_option('api-docs'), + command : + [ + valadoc, + server_doc_common_args, + '-o', 'valadoc', + server_sources + ] +) + +if gtkdoc.found() +custom_target('gtkdoc-server', + input: server_sources, + output: 'gtkdoc', + depends : server_lib, + build_by_default : get_option('api-docs'), + command : + [ + valadoc, + server_doc_common_args, + '--doclet', 'gtkdoc', + '-o', 'gtkdoc', + '-X', join_paths(meson.build_root(), 'src/librygel-server/rygel-server.h'), + '-X', '-l', + '-X', join_paths(meson.build_root(), 'src/librygel-server/librygel-server-2.6.so'), + '-X', '-l', + '-X', join_paths(meson.build_root(), 'src/librygel-core/librygel-core-2.6.so'), + server_sources + ] +) +if get_option('api-docs') + install_subdir('gtkdoc/html', + install_dir : join_paths(get_option('datadir'), 'gtk-doc/html/librygel-server'), + strip_directory : true) +endif +endif +endif diff --git a/doc/reference/meson.build b/doc/reference/meson.build new file mode 100644 index 00000000..443762f2 --- /dev/null +++ b/doc/reference/meson.build @@ -0,0 +1,5 @@ +subdir('librygel-core') +subdir('librygel-db') +subdir('librygel-renderer') +subdir('librygel-renderer-gst') +subdir('librygel-server')
\ No newline at end of file diff --git a/examples/meson.build b/examples/meson.build new file mode 100644 index 00000000..34cc1ae8 --- /dev/null +++ b/examples/meson.build @@ -0,0 +1,30 @@ +subdir('renderer-plugins') +subdir('server-plugins') + +executable('standalone-server', + 'standalone-server.c', + dependencies : [gio, rygel_core, rygel_server], + link_with : [core_lib, server_lib]) + +executable('standalone-ruih', + 'standalone-ruih.c', + dependencies : [gio, rygel_core, rygel_ruih], + link_with: [core_lib, ruih_lib]) + +executable('standalone-renderer-gst', + 'standalone-renderer-gst.c', + dependencies : [gstreamer, + gstreamer_video, + rygel_core, + rygel_renderer, + rygel_renderer_gst], + link_with: [core_lib, renderer_lib, renderer_gst_lib]) + +executable('fullscreen-renderer', + 'fullscreen-renderer.c', + dependencies : [gstreamer_video, + gtk, + rygel_core, + rygel_renderer, + rygel_renderer_gst], + link_with: [core_lib, renderer_lib, renderer_gst_lib]) diff --git a/examples/renderer-plugins/C/example-player.c b/examples/renderer-plugins/C/example-player.c index c802e3cc..b4304577 100644 --- a/examples/renderer-plugins/C/example-player.c +++ b/examples/renderer-plugins/C/example-player.c @@ -130,10 +130,6 @@ static void rygel_example_player_finalize (GObject *obj); -G_DEFINE_TYPE_WITH_CODE (RygelExamplePlayer, rygel_example_player, G_TYPE_OBJECT, - G_IMPLEMENT_INTERFACE (RYGEL_TYPE_MEDIA_PLAYER, - rygel_example_player_rygel_media_player_interface_init)) - struct _RygelExamplePlayerPrivate { gchar *_playback_state; gchar *_uri; @@ -146,6 +142,12 @@ struct _RygelExamplePlayerPrivate { gchar *playback_speed; gchar *user_agent; }; +typedef struct _RygelExamplePlayerPrivate RygelExamplePlayerPrivate; + +G_DEFINE_TYPE_WITH_CODE (RygelExamplePlayer, rygel_example_player, G_TYPE_OBJECT, + G_ADD_PRIVATE(RygelExamplePlayer) + G_IMPLEMENT_INTERFACE (RYGEL_TYPE_MEDIA_PLAYER, + rygel_example_player_rygel_media_player_interface_init)) static const gchar* RYGEL_EXAMPLE_PLAYER_PROTOCOLS[] = {"http-get", NULL}; static const gchar* RYGEL_EXAMPLE_PLAYER_MIME_TYPES[] = {"image/jpeg", "image/png", NULL}; @@ -190,8 +192,6 @@ static void rygel_example_player_class_init (RygelExamplePlayerClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (gobject_class, sizeof (RygelExamplePlayerPrivate)); - gobject_class->get_property = _rygel_example_player_get_property; gobject_class->set_property = _rygel_example_player_set_property; gobject_class->finalize = rygel_example_player_finalize; diff --git a/examples/renderer-plugins/C/meson.build b/examples/renderer-plugins/C/meson.build new file mode 100644 index 00000000..c0a0c49f --- /dev/null +++ b/examples/renderer-plugins/C/meson.build @@ -0,0 +1,15 @@ +shared_module('rygel-example-renderer-plugin-c', + ['example-renderer-plugin.h', + 'example-renderer-plugin.c', + 'example-player.h', + 'example-player.c'], + c_args : '-DG_LOG_DOMAIN="ExampleRendererPluginC"', + dependencies: [rygel_core, rygel_renderer], + link_with : [core_lib, renderer_lib], + install : true, + install_dir : rygel_plugindir) + +configure_file(input : 'example-renderer-c.plugin.in', + output : 'example-renderer-c.plugin', + configuration : plugin_config, + install_dir : rygel_plugindir) diff --git a/examples/renderer-plugins/meson.build b/examples/renderer-plugins/meson.build new file mode 100644 index 00000000..9684ef9d --- /dev/null +++ b/examples/renderer-plugins/meson.build @@ -0,0 +1,2 @@ +subdir('C') +subdir('vala') diff --git a/examples/renderer-plugins/vala/meson.build b/examples/renderer-plugins/vala/meson.build new file mode 100644 index 00000000..8d3c2a8a --- /dev/null +++ b/examples/renderer-plugins/vala/meson.build @@ -0,0 +1,12 @@ +shared_module('rygel-example-renderer-plugin-vala', + ['example-renderer-plugin-vala.vala', + 'example-player-vala.vala'], + c_args : '-DG_LOG_DOMAIN="ExampleRendererPluginVala"', + dependencies : common_deps + [gupnp_av, rygel_core, rygel_renderer], + install : true, + install_dir : rygel_plugindir) + +configure_file(input : 'example-renderer-vala.plugin.in', + output : 'example-renderer-vala.plugin', + configuration : plugin_config, + install_dir : rygel_plugindir) diff --git a/examples/server-plugins/C/meson.build b/examples/server-plugins/C/meson.build new file mode 100644 index 00000000..34c3d826 --- /dev/null +++ b/examples/server-plugins/C/meson.build @@ -0,0 +1,14 @@ +shared_module('rygel-example-server-plugin-c', + ['example-server-plugin.h', + 'example-server-plugin.c', + 'example-root-container.h', + 'example-root-container.c'], + c_args : '-DG_LOG_DOMAIN="ExampleServerPluginC"', + dependencies: [rygel_core, rygel_server], + install : true, + install_dir : rygel_plugindir) + +configure_file(input : 'example-server-c.plugin.in', + output : 'example-server-c.plugin', + configuration : plugin_config, + install_dir : rygel_plugindir) diff --git a/examples/server-plugins/meson.build b/examples/server-plugins/meson.build new file mode 100644 index 00000000..9684ef9d --- /dev/null +++ b/examples/server-plugins/meson.build @@ -0,0 +1,2 @@ +subdir('C') +subdir('vala') diff --git a/examples/server-plugins/vala/meson.build b/examples/server-plugins/vala/meson.build new file mode 100644 index 00000000..607792aa --- /dev/null +++ b/examples/server-plugins/vala/meson.build @@ -0,0 +1,12 @@ +shared_module('rygel-example-server-plugin-vala', + ['example-server-plugin-vala.vala', + 'example-root-container-vala.vala'], + c_args : '-DG_LOG_DOMAIN="ExampleServerPluginVala"', + dependencies : common_deps + [gupnp_av, rygel_core, rygel_server], + install : true, + install_dir : rygel_plugindir) + +configure_file(input : 'example-server-vala.plugin.in', + output : 'example-server-vala.plugin', + configuration : plugin_config, + install_dir : rygel_plugindir) diff --git a/meson.build b/meson.build new file mode 100644 index 00000000..cab6efd6 --- /dev/null +++ b/meson.build @@ -0,0 +1,202 @@ +project('rygel', 'vala', 'c', version : '0.37.0') +vala = meson.get_compiler('vala') + +# Check for the required vala version +vala_version_required = '>= 0.40' +vala_version_found = vala.version() + +if not vala_version_found.version_compare(vala_version_required) + error('Found Vala version @0@, need @1@'.format(vala_version_found, vala_version_required)) +endif + +i18n = import('i18n') + +rygel_libdir = join_paths(get_option('prefix'), get_option('libdir')) +rygel_includedir = join_paths(get_option('includedir'), 'rygel-2.6') +rygel_vapidir = join_paths(get_option('prefix'), get_option('datadir'), 'vala/vapi') + +if not get_option('uninstalled') + rygel_datadir = join_paths(get_option('prefix'), get_option('datadir')) + rygel_libexecdir = join_paths(get_option('prefix'), get_option('libexecdir'), + 'rygel') + rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir')) + rygel_plugindir = join_paths(rygel_libdir, 'rygel-2.6', 'plugins') + rygel_enginedir = join_paths(rygel_libdir, 'rygel-2.6', 'engines') + rygel_presetdir = join_paths(rygel_datadir, 'rygel', 'presets') + rygel_icondir = join_paths(rygel_datadir, 'icons', 'hicolor') + rygel_bigicondir = join_paths(rygel_datadir, 'rygel', 'icons', '120x120') + rygel_smallicondir = join_paths(rygel_datadir, 'rygel', 'icons', '48x48') + rygel_includedir = join_paths(get_option('includedir'), 'rygel-2.6') + rygel_vapidir = join_paths(rygel_datadir, 'vala', 'vapi') +else + rygel_datadir = join_paths(meson.current_build_dir(), 'data') + rygel_libexecdir = join_paths(meson.current_build_dir(), 'src/plugins/media-export') + rygel_sysconfdir = join_paths(meson.current_source_dir(), 'data') + rygel_plugindir = join_paths(meson.current_build_dir(), 'src', 'plugins') + rygel_enginedir = join_paths(meson.current_build_dir(), 'src', 'media-engines') + rygel_presetdir = join_paths(meson.current_source_dir(), 'data', 'presets') + rygel_icondir = join_paths(meson.current_source_dir(), 'data', 'icons', 'hicolor') + rygel_bigicondir = join_paths(meson.current_source_dir(), 'data', 'icons', '120x120') + rygel_smallicondir = join_paths(meson.current_source_dir(), 'data', 'icons', '48x48') +endif + +plugin_config = configuration_data() +plugin_config.set('VERSION', meson.project_version()) +plugin_config.set('PACKAGE_URL', 'http://www.rygel-project.org') + +conf = configuration_data() +conf.set_quoted('GETTEXT_PACKAGE', 'rygel') +conf.set_quoted('PACKAGE_NAME', 'Rygel') +conf.set_quoted('PACKAGE_STRING', 'Rygel @0@'.format(meson.project_version())) +conf.set_quoted('PACKAGE_VERSION', meson.project_version()) +conf.set_quoted('PACKAGE_URL', 'http://www.rygel-project.org') +conf.set_quoted('ENGINE_DIR', rygel_enginedir) +conf.set_quoted('PRESET_DIR', rygel_presetdir) +conf.set_quoted('DATA_DIR', rygel_datadir) +conf.set_quoted('PLUGIN_DIR', rygel_plugindir) +conf.set_quoted('BIG_ICON_DIR', rygel_bigicondir) +conf.set_quoted('SMALL_ICON_DIR', rygel_smallicondir) +conf.set_quoted('SYS_CONFIG_DIR', rygel_sysconfdir) +conf.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir'))) +conf.set_quoted('MX_EXTRACT_PATH', join_paths(rygel_libexecdir, 'mx-extract')) +conf.set_quoted('DESKTOP_DIR', join_paths(rygel_datadir, 'applications')) +conf.set_quoted('VERSION', meson.project_version()) +config_include = include_directories('.') + +add_global_arguments(['-include','config.h'], language : 'c') + +valadoc = find_program('valadoc', required : false) +gtkdoc = dependency('gtk-doc', required : false) + +gupnp = dependency('gupnp-1.0', version : '>= 1.0') +gee = dependency('gee-0.8', version: '>= 0.8.0') +gssdp = dependency('gssdp-1.0', version : '>= 1.0') +glib = dependency('glib-2.0', version : '>= 2.26') +gio = dependency('gio-2.0', version : '>= 2.26') +gio_unix = dependency('gio-unix-2.0', version : '>= 2.26') +gmodule = dependency('gmodule-2.0') +libxml = dependency('libxml-2.0', version: '>= 2.7') +gupnp_av = dependency('gupnp-av-1.0', version: '>= 0.12.8') +gupnp_dlna = dependency('gupnp-dlna-2.0', version: '>= 0.9.4') +soup = dependency('libsoup-2.4', version : '>= 2.44.0') +mediaart = dependency('libmediaart-2.0', version : '>= 0.7.0') +sqlite = dependency('sqlite3', version : '>= 3.5') + +if get_option('gstreamer') + gstreamer = dependency('gstreamer-1.0', version : '>= 1.0') + gstreamer_pbu = dependency('gstreamer-pbutils-1.0', version : '>= 1.0') + gstreamer_base = dependency('gstreamer-base-1.0', version : '>= 1.0') + gstreamer_audio = dependency('gstreamer-audio-1.0', version : '>= 1.0') + gstreamer_video = dependency('gstreamer-video-1.0', version : '>= 1.0') + gstreamer_tag = dependency('gstreamer-tag-1.0', version : '>= 1.0') + gupnp_dlna_gst = dependency('gupnp-dlna-gst-2.0', version: '>= 0.9.4') +else + gstreamer = disabler() + gstreamer_pbu = disabler() + gstreamer_base = disabler() + gstreamer_audio = disabler() + gstreamer_video = disabler() + gstreamer_tag = disabler() + gupnp_dlna_gst = disabler() +endif + +gdk_pixbuf = dependency('gdk-pixbuf-2.0') + +if get_option('gtk') + gtk = dependency('gtk+-3.0', version : '>= 3.0') +else + gtk = disabler() +endif + +posix = vala.find_library('posix') + +sed = find_program('sed') +g_ir_compiler = find_program('g-ir-compiler') +gir_dir = join_paths(get_option('datadir'), 'gir-1.0') +typelib_dir = join_paths(get_option('libdir'), 'girepository-1.0') +pkgconfig_dir = join_paths(get_option('libdir'), 'pkgconfig') + +cc = meson.get_compiler('c') +math = cc.find_library('m', required: false) +unistring = cc.find_library('unistring', required: false) +u8_strcoll_available = cc.has_function('u8_strcoll', dependencies: unistring) +conf.set10('HAVE_UNISTRING', u8_strcoll_available) + +common_deps = [gupnp, gee] + +core_deps = common_deps + [gssdp, gio, gmodule, libxml, posix, math] +renderer_deps = common_deps + [gupnp_av, soup] +renderer_gst_deps = common_deps + [gstreamer, gstreamer_audio] +server_deps = common_deps + [gssdp, gupnp_av, soup, mediaart, gmodule, libxml] +db_deps = common_deps + [gupnp_av, gio, sqlite, unistring] +media_engine_gst_dep = [gee, gupnp_av, libxml, gio, gstreamer, gstreamer_pbu, + gstreamer_base, gupnp_dlna] +ruih_deps = common_deps +rygel_deps = common_deps + +external_plugin_deps = [gio] +gst_launch_plugin_deps = [gstreamer] +lms_deps = [sqlite] +mx_export_deps = common_deps + [gio, gio_unix, gstreamer, gstreamer_pbu, + gupnp_dlna, gupnp_av, mediaart, gdk_pixbuf, + posix, gupnp_dlna_gst, gstreamer_tag, libxml, + soup] +mx_plugin_deps = common_deps + [gstreamer, gstreamer_pbu, gio_unix, gupnp_dlna] +ui_deps = common_deps + [gtk] + +configure_file(output: 'config.h', configuration: conf) + +pc_conf = configuration_data() +pc_conf.set('prefix', get_option('prefix')) +pc_conf.set('exec_prefix', '${prefix}') +pc_conf.set('libdir', join_paths(get_option('prefix'), get_option('libdir'))) +pc_conf.set('includedir', join_paths('${prefix}', get_option('includedir'))) +pc_conf.set('VERSION', '"@0@"'.format(meson.project_version())) +pc_conf.set('RYGEL_PLUGIN_DIR', rygel_plugindir) +pc_conf.set('RYGEL_MEDIA_ENGINE_DIR', rygel_enginedir) +pc_conf.set('RYGEL_PLUGIN_LINKER_FLAGS', '') +pc_conf.set('RYGEL_ENGINE_LINKER_FLAGS', '') + +configure_file(output: 'rygel-core-2.6.pc', + input: 'rygel-core-2.6.pc.in', + configuration: pc_conf, + install: true, + install_dir : pkgconfig_dir) + +configure_file(output: 'rygel-server-2.6.pc', + input: 'rygel-server-2.6.pc.in', + configuration: pc_conf, + install: true, + install_dir : pkgconfig_dir) + +configure_file(output: 'rygel-renderer-2.6.pc', + input: 'rygel-renderer-2.6.pc.in', + configuration: pc_conf, + install: true, + install_dir : pkgconfig_dir) + +configure_file(output: 'rygel-renderer-gst-2.6.pc', + input: 'rygel-renderer-gst-2.6.pc.in', + configuration: pc_conf, + install: true, + install_dir : pkgconfig_dir) + +configure_file(output: 'rygel-ruih-2.0.pc', + input: 'rygel-ruih-2.0.pc.in', + configuration: pc_conf, + install: true, + install_dir : pkgconfig_dir) + +subdir('src') +subdir('po') +subdir('data') +subdir('doc') + +if get_option('examples') + subdir('examples') +endif + + +if get_option('tests') + subdir('tests') +endif diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 00000000..f09cac58 --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,9 @@ +option('uninstalled', type: 'boolean', value: 'false', description: 'Run Rygel from build directory only') +option('api-docs', type: 'boolean', value: 'false', description: 'Build the API documentation') +option('systemd-user-units-dir', type : 'string', value : 'auto', description : 'Where to install the systemd user unit (use special values "auto" or "none", or pass a path') +option('plugins', type : 'array', choices : ['external', 'gst-launch', 'lms', 'media-export', 'mpris', 'playbin', 'ruih', 'tracker']) +option('engines', type : 'array', choices : ['simple', 'gstreamer']) +option('examples', type : 'boolean', value : 'true') +option('tests', type : 'boolean', value : 'true') +option('gstreamer', type : 'boolean', value : 'true') +option('gtk', type : 'boolean', value : 'true') diff --git a/po/meson.build b/po/meson.build new file mode 100644 index 00000000..55001cf4 --- /dev/null +++ b/po/meson.build @@ -0,0 +1 @@ +i18n.gettext('rygel', preset: 'glib') diff --git a/src/librygel-core/meson.build b/src/librygel-core/meson.build new file mode 100644 index 00000000..048ac35d --- /dev/null +++ b/src/librygel-core/meson.build @@ -0,0 +1,84 @@ +core_sources = files( + 'rygel-connection-manager.vala', + 'rygel-basic-management.vala', + 'rygel-basic-management-test.vala', + 'rygel-basic-management-test-ping.vala', + 'rygel-basic-management-test-nslookup.vala', + 'rygel-basic-management-test-traceroute.vala', + 'rygel-description-file.vala', + 'rygel-dlna-profile.vala', + 'rygel-energy-management.vala', + 'rygel-root-device.vala', + 'rygel-root-device-factory.vala', + 'rygel-dbus-interface.vala', + 'rygel-log-handler.vala', + 'rygel-meta-config.vala', + 'rygel-plugin-loader.vala', + 'rygel-recursive-module-loader.vala', + 'rygel-plugin.vala', + 'rygel-resource-info.vala', + 'rygel-media-device.vala', + 'rygel-configuration.vala', + 'rygel-base-configuration.vala', + 'rygel-cmdline-config.vala', + 'rygel-environment-config.vala', + 'rygel-user-config.vala', + 'rygel-state-machine.vala', + 'rygel-v1-hacks.vala', + 'rygel-icon-info.vala', + 'rygel-xml-utils.vala', + 'rygel-plugin-information.vala', + 'rygel-energy-management-helper.c', + 'rygel-build-config.vapi') + +build_config = declare_dependency(include_directories : config_include, + sources : 'rygel-build-config.vapi') + + +# Rygel GIR generation is a tad special. We need to hammer in custom namespaces +# since the libraries used to be in one binary. So +# Step one: Build the library, generate the GIR from vala but do not install it +core_lib = library('rygel-core-2.6', core_sources, + dependencies : core_deps, + include_directories: [config_include, include_directories('.')], + version: '2.0.4', + c_args : ['-DG_LOG_DOMAIN="RygelCore"'], + vala_gir : 'Rygel-2.6.gir', + vala_header : 'rygel-core.h', + install: true, + install_dir : [true, rygel_includedir, true, false]) +install_data('rygel-core-2.6.deps', install_dir : rygel_vapidir) + +# Step two: Do the namespace magic with sed +# We cannot use input: here since the generated ninja build file does not seem +# to know that Rygel-2.6.gir is a result of building rygel-core-2.6 target +# The custom_target call depends on the core_lib to make sure it is build before +# and the name of the generated GIR is passed directly to sed as part of the +# commandline +core_gir = custom_target('RygelCore-2.6.gir', + command: [sed, '-e', 's,Rygel[.],RygelCore.,g', + '-e', 's,namespace name="Rygel",namespace name="RygelCore",g', + join_paths(meson.current_build_dir(), 'Rygel-2.6.gir')], + depends: core_lib, + output: 'RygelCore-2.6.gir', + capture: true, + install: true, + install_dir: gir_dir) + +# Step three: Compile the typelib. The dependency issue is similar to step two, +# so we depend on the custom_target from that step and pass the input through +# commandline. +custom_target('RygelCore-2.6.typelib', + command: [g_ir_compiler, '--output', '@OUTPUT@', join_paths(meson.current_build_dir(), 'RygelCore-2.6.gir')], + output: 'RygelCore-2.6.typelib', + depends: core_gir, + install: true, + install_dir: typelib_dir) + +# need to add to get the current build dir as include dir +rygel_core = declare_dependency(include_directories: include_directories('.'), + dependencies: core_deps, + link_with: core_lib) + +# necessary to be able to pass it to g-ir-compiler in other libs +core_girdir = meson.current_build_dir() diff --git a/src/librygel-db/collate.c b/src/librygel-db/collate.c index a029e515..210ba4d7 100644 --- a/src/librygel-db/collate.c +++ b/src/librygel-db/collate.c @@ -22,7 +22,7 @@ #include <glib.h> -#ifdef HAVE_UNISTRING +#if HAVE_UNISTRING # include <unistr.h> #endif @@ -36,7 +36,7 @@ gint rygel_database_utf8_collate_str (const char *a, gsize alen, a_str = g_strndup (a, alen); b_str = g_strndup (b, blen); -#ifdef HAVE_UNISTRING +#if HAVE_UNISTRING result = u8_strcoll ((const uint8_t *) a_str, (const uint8_t *) b_str); #else return g_utf8_collate (a_str, b_str); diff --git a/src/librygel-db/meson.build b/src/librygel-db/meson.build new file mode 100644 index 00000000..ec7eaf3e --- /dev/null +++ b/src/librygel-db/meson.build @@ -0,0 +1,22 @@ +db_sources = files( + 'database-cursor.vala', + 'database.vala', + 'sql-function.vala', + 'sql-operator.vala', + 'collate.c' +) + +db_lib = library('rygel-db-2.6', db_sources, + dependencies : db_deps + [rygel_core], + include_directories: [config_include, include_directories('.')], + version: '2.0.4', + c_args : ['-DG_LOG_DOMAIN="RygelDb"'], + vala_header : 'rygel-db.h', + install: true, + install_dir : [true, rygel_includedir, true]) +install_data('rygel-db-2.6.deps', install_dir : rygel_vapidir) + +# need to add to get the current build dir as include dir +rygel_db = declare_dependency(include_directories: include_directories('.'), + dependencies: db_deps, + link_with: db_lib) diff --git a/src/librygel-renderer-gst/meson.build b/src/librygel-renderer-gst/meson.build new file mode 100644 index 00000000..aa564119 --- /dev/null +++ b/src/librygel-renderer-gst/meson.build @@ -0,0 +1,45 @@ +renderer_gst_sources = files( + 'rygel-playbin-player.vala', + 'rygel-playbin-renderer.vala', +) + +renderer_gst_lib = library('rygel-renderer-gst-2.6', renderer_gst_sources, + dependencies : renderer_gst_deps + [build_config, rygel_core, rygel_renderer], + version: '2.0.4', + c_args : ['-DG_LOG_DOMAIN="RygelRendererGst"'], + vala_gir : 'Rygel-2.6.gir', + vala_header : 'rygel-renderer-gst.h', + install: true, + install_dir : [true, rygel_includedir, true, false]) +install_data('rygel-renderer-gst-2.6.deps', install_dir : rygel_vapidir) + +# For details on the GIR/typelib generating process, see +# librygel-core/meson.build +renderer_gst_gir = custom_target('RygelRendererGst-2.6.gir', + command: [sed, '-e', 's,Rygel[.],RygelRendererGst.,g', + '-e', 's,RygelRendererGst[.]MediaRenderer,RygelRenderer.MediaRenderer,g', + '-e', 's,RygelRendererGst[.]MediaPlayer,RygelRenderer.MediaPlayer,g', + '-e', 's,namespace name="Rygel",namespace name="RygelRendererGst",g', + '-e', 's,RygelRendererGst[.]Plugin,RygelCore.Plugin,g', + '-e', 's,<package name="rygel-renderer-gst-2.6"/>,<include name="RygelCore" version="2.6"/><include name="RygelRenderer" version="2.6"/><package name="rygel-renderer-gst-2.6"/>,', + join_paths(meson.current_build_dir(), 'Rygel-2.6.gir')], + output: 'RygelRendererGst-2.6.gir', + depends: renderer_gst_lib, + capture: true, + install: true, + install_dir: gir_dir) + +custom_target('RygelRendererGst-2.6.typelib', + command: [g_ir_compiler, + '--output', '@OUTPUT@', + '--includedir', core_girdir, + '--includedir', renderer_girdir, + join_paths(meson.current_build_dir(), 'RygelRendererGst-2.6.gir')], + output: 'RygelRendererGst-2.6.typelib', + depends: [renderer_gst_lib, renderer_lib, renderer_gst_gir], + install: true, + install_dir: typelib_dir) + +rygel_renderer_gst = declare_dependency(include_directories : include_directories('.'), + dependencies : renderer_gst_deps, + link_with: renderer_gst_lib) diff --git a/src/librygel-renderer/meson.build b/src/librygel-renderer/meson.build new file mode 100644 index 00000000..b14eef66 --- /dev/null +++ b/src/librygel-renderer/meson.build @@ -0,0 +1,55 @@ +renderer_sources = files( + 'rygel-media-renderer-plugin.vala', + 'rygel-media-player.vala', + 'rygel-media-renderer.vala', + 'rygel-player-controller.vala', + 'rygel-av-transport.vala', + 'rygel-default-player-controller.vala', + 'rygel-rendering-control.vala', + 'rygel-sink-connection-manager.vala', + 'rygel-time-utils.vala', + 'rygel-changelog.vala', + 'rygel-volume.vala' +) + +renderer_lib = library('rygel-renderer-2.6', renderer_sources, + dependencies : renderer_deps + [build_config, rygel_core], + version: '2.0.4', + c_args : ['-DG_LOG_DOMAIN="RygelRenderer"'], + vala_gir : 'Rygel-2.6.gir', + vala_header : 'rygel-renderer.h', + install: true, + install_dir : [true, rygel_includedir, true, false]) +install_data('rygel-renderer-2.6.deps', install_dir : rygel_vapidir) + +# For details on the GIR / typelib generation process, see +# librygel-core/meson.build +renderer_gir = custom_target('RygelRenderer-2.6.gir', + command: [sed, '-e', 's,Rygel[.],RygelRenderer.,g', + '-e', 's,namespace name="Rygel",namespace name="RygelRenderer",g', + '-e', 's,RygelRenderer[.]Plugin,RygelCore.Plugin,g', + '-e', 's,RygelRenderer[.]MediaDevice,RygelCore.MediaDevice,g', + '-e', 's|<package name="rygel-renderer-2.6"/>|<include name="RygelCore" version="2.6"/><package name="rygel-renderer-2.6"/>|', + join_paths(meson.current_build_dir(), 'Rygel-2.6.gir')], + output: 'RygelRenderer-2.6.gir', + depends: renderer_lib, + capture: true, + install: true, + install_dir: gir_dir) + +custom_target('RygelRenderer-2.6.typelib', + command: [g_ir_compiler, + '--output', '@OUTPUT@', + '--includedir', core_girdir, + join_paths(meson.current_build_dir(), 'RygelRenderer-2.6.gir')], + output: 'RygelRenderer-2.6.typelib', + depends: renderer_gir, + install: true, + install_dir: typelib_dir) + + +rygel_renderer = declare_dependency(include_directories : include_directories('.'), + dependencies : renderer_deps, + link_with: renderer_lib) + +renderer_girdir = meson.current_build_dir() diff --git a/src/librygel-ruih/meson.build b/src/librygel-ruih/meson.build new file mode 100644 index 00000000..ff50be9f --- /dev/null +++ b/src/librygel-ruih/meson.build @@ -0,0 +1,27 @@ +ruih_sources = [ + 'rygel-ruih-filter-entry.vala', + 'rygel-ruih-icon-elem.vala', + 'rygel-ruih-protocol-elem.vala', + 'rygel-ruih-server-plugin.vala', + 'rygel-ruih-server.vala', + 'rygel-ruih-service.vala', + 'rygel-ruih-service-error.vala', + 'rygel-ruih-servicemanager.vala', + 'rygel-ruih-ui-elem.vala', + 'rygel-ruih-ui-listing.vala', + 'rygel-ruih-wildcard-filter-entry.vala' +] + +ruih_lib = library('rygel-ruih-2.0', ruih_sources, + dependencies : ruih_deps + [build_config, rygel_core], + version: '1.0.0', + c_args : ['-DG_LOG_DOMAIN="RygelRuih"'], + vala_header : 'rygel-ruih.h', + install: true, + install_dir : [true, rygel_includedir, true]) +install_data('rygel-ruih-2.0.deps', install_dir : rygel_vapidir) + +# need to add to get the current build dir as include dir +rygel_ruih = declare_dependency(include_directories: include_directories('.'), + dependencies : ruih_deps, + link_with: ruih_lib) diff --git a/src/librygel-server/meson.build b/src/librygel-server/meson.build new file mode 100644 index 00000000..35910283 --- /dev/null +++ b/src/librygel-server/meson.build @@ -0,0 +1,134 @@ +server_sources = files( + 'rygel-audio-item.vala', + 'rygel-image-item.vala', + 'rygel-logical-expression.vala', + 'rygel-media-art-store.vala', + 'rygel-media-objects.vala', + 'rygel-music-item.vala', + 'rygel-photo-item.vala', + 'rygel-relational-expression.vala', + 'rygel-simple-container.vala', + 'rygel-subtitle.vala', + 'rygel-thumbnail.vala', + 'rygel-video-item.vala', + 'rygel-media-container.vala', + 'rygel-media-item.vala', + 'rygel-media-file-item.vala', + 'rygel-media-object.vala', + 'rygel-media-resource.vala', + 'rygel-media-server-plugin.vala', + 'rygel-search-expression.vala', + 'rygel-searchable-container.vala', + 'rygel-trackable-container.vala', + 'rygel-trackable-item.vala', + 'rygel-visual-item.vala', + 'rygel-writable-container.vala', + 'rygel-media-server.vala', + 'rygel-media-engine.vala', + 'rygel-http-seek.vala', + 'rygel-data-source.vala', + 'rygel-updatable-object.vala', + 'rygel-playlist-item.vala', + 'rygel-browse.vala', + 'rygel-client-hacks.vala', + 'rygel-content-directory.vala', + 'rygel-dbus-thumbnailer.vala', + 'rygel-engine-loader.vala', + 'rygel-http-byte-seek-request.vala', + 'rygel-http-byte-seek-response.vala', + 'rygel-free-desktop-interfaces.vala', + 'rygel-http-get-handler.vala', + 'rygel-http-get.vala', + 'rygel-http-thumbnail-handler.vala', + 'rygel-http-subtitle-handler.vala', + 'rygel-http-item-uri.vala', + 'rygel-http-post.vala', + 'rygel-http-request.vala', + 'rygel-http-response.vala', + 'rygel-http-response-element.vala', + 'rygel-http-server.vala', + 'rygel-http-time-seek-request.vala', + 'rygel-http-time-seek-response.vala', + 'rygel-http-resource-handler.vala', + 'rygel-import-resource.vala', + 'rygel-object-creator.vala', + 'rygel-reference-creator.vala', + 'rygel-item-destroyer.vala', + 'rygel-item-updater.vala', + 'rygel-object-removal-queue.vala', + 'rygel-last-change-entry.vala', + 'rygel-last-change-obj-add.vala', + 'rygel-last-change-obj-del.vala', + 'rygel-last-change-obj-mod.vala', + 'rygel-last-change-st-done.vala', + 'rygel-last-change.vala', + 'rygel-lg-tv-hacks.vala', + 'rygel-m3u-playlist.vala', + 'rygel-media-query-action.vala', + 'rygel-media-receiver-registrar.vala', + 'rygel-panasonic-hacks.vala', + 'rygel-samsung-tv-hacks.vala', + 'rygel-seek-hacks.vala', + 'rygel-search-criteria-parser.vala', + 'rygel-search.vala', + 'rygel-serializer.vala', + 'rygel-source-connection-manager.vala', + 'rygel-subtitle-manager.vala', + 'rygel-thumbnailer.vala', + 'rygel-wmp-hacks.vala', + 'rygel-xbmc-hacks.vala', + 'rygel-xbmc4xbox-hacks.vala', + 'rygel-xbox-hacks.vala', + 'rygel-phillips-hacks.vala', + 'rygel-data-sink.vala', + 'rygel-playspeed.vala', + 'rygel-playspeed-request.vala', + 'rygel-playspeed-response.vala', + 'rygel-dtcp-cleartext-request.vala', + 'rygel-dtcp-cleartext-response.vala', + 'rygel-dlna-available-seek-request.vala', + 'rygel-dlna-available-seek-response.vala') + +server_lib = library('rygel-server-2.6', server_sources, + dependencies : server_deps + [build_config, rygel_core], + version: '2.0.4', + c_args : ['-DG_LOG_DOMAIN="RygelServer"'], + vala_gir : 'Rygel-2.6.gir', + vala_header : 'rygel-server.h', + install: true, + install_dir : [true, rygel_includedir, true, false]) +install_data('rygel-server-2.6.deps', install_dir : rygel_vapidir) + + +# For details on the GIR/typelib generation process, see +# librygel-core/meson.build +server_gir = custom_target('RygelServer-2.6.gir', + command: [sed, '-e', 's,Rygel[.],RygelServer.,g', + '-e', 's,namespace name="Rygel",namespace name="RygelServer",g', + '-e', 's,RygelServer[.]Plugin,RygelCore.Plugin,g', + '-e', 's,RygelServer[.]MediaDevice,RygelCore.MediaDevice,g', + '-e', 's|<package name="rygel-server-2.6"/>|<include name="RygelCore" version="2.6"/><package name="rygel-server-2.6"/>|', + join_paths(meson.current_build_dir(), 'Rygel-2.6.gir')], + output: 'RygelServer-2.6.gir', + capture: true, + depends: server_lib, + install: true, + install_dir: join_paths(get_option('datadir'),'gir-1.0')) + +custom_target('RygelServer-2.6.typelib', + command: [g_ir_compiler, + '--output', '@OUTPUT@', + '--includedir', core_girdir, + join_paths(meson.current_build_dir(), 'RygelServer-2.6.gir')], + output: 'RygelServer-2.6.typelib', + depends: server_gir, + install: true, + install_dir: typelib_dir) + +# need to add to get the current build dir as include dir +rygel_server = declare_dependency(include_directories: include_directories('.'), + dependencies : server_deps, + link_with: server_lib) + +# necessary to be able to pass it to g-ir-compiler in other libs +server_girdir = meson.current_build_dir()
\ No newline at end of file diff --git a/src/media-engines/gstreamer/meson.build b/src/media-engines/gstreamer/meson.build new file mode 100644 index 00000000..04cb2077 --- /dev/null +++ b/src/media-engines/gstreamer/meson.build @@ -0,0 +1,29 @@ +configure_file(input : 'media-engine-gst.plugin.in', + output : 'media-engine-gst.plugin', + configuration : plugin_config, + install_dir : rygel_enginedir) + +media_engine_gst_sources = [ + 'rygel-aac-transcoder.vala', + 'rygel-audio-transcoder.vala', + 'rygel-avc-transcoder.vala', + 'rygel-gst-data-source.vala', + 'rygel-gst-media-engine.vala', + 'rygel-gst-sink.vala', + 'rygel-gst-transcoder.vala', + 'rygel-gst-utils.vala', + 'rygel-jpeg-transcoder.vala', + 'rygel-l16-transcoder.vala', + 'rygel-mp2ts-transcoder.vala', + 'rygel-mp3-transcoder.vala', + 'rygel-video-transcoder.vala', + 'rygel-wmv-transcoder.vala' + ] + + +shared_module('rygel-media-engine-gst', + media_engine_gst_sources, + dependencies: media_engine_gst_dep + [build_config, rygel_core, rygel_server], + c_args : ['-DG_LOG_DOMAIN="MediaEngine-GStreamer"'], + install: true, + install_dir : rygel_enginedir) diff --git a/src/media-engines/meson.build b/src/media-engines/meson.build new file mode 100644 index 00000000..12e49176 --- /dev/null +++ b/src/media-engines/meson.build @@ -0,0 +1,3 @@ +foreach engine : get_option('engines') + subdir(engine) +endforeach diff --git a/src/media-engines/simple/meson.build b/src/media-engines/simple/meson.build new file mode 100644 index 00000000..b89fd87f --- /dev/null +++ b/src/media-engines/simple/meson.build @@ -0,0 +1,14 @@ +configure_file(input : 'media-engine-simple.plugin.in', + output : 'media-engine-simple.plugin', + configuration : plugin_config, + install_dir : rygel_enginedir) + +media_engine_simple_sources = ['rygel-simple-media-engine.vala', + 'rygel-simple-data-source.vala'] + +shared_module('rygel-media-engine-simple', + media_engine_simple_sources, + c_args : ['-DG_LOG_DOMAIN="MediaEngine-Simple"'], + dependencies: [build_config, rygel_core, rygel_server, posix], + install: true, + install_dir : rygel_enginedir) diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 00000000..990929a6 --- /dev/null +++ b/src/meson.build @@ -0,0 +1,11 @@ +subdir('librygel-core') +subdir('librygel-db') +subdir('librygel-renderer') +subdir('librygel-renderer-gst') +subdir('librygel-ruih') +subdir('librygel-server') +subdir('media-engines') +subdir('rygel') +subdir('ui') + +subdir('plugins') diff --git a/src/plugins/external/meson.build b/src/plugins/external/meson.build new file mode 100644 index 00000000..7a0e5583 --- /dev/null +++ b/src/plugins/external/meson.build @@ -0,0 +1,24 @@ +configure_file(input : 'external.plugin.in', + output : 'external.plugin', + configuration : plugin_config, + install_dir : rygel_plugindir) + +rygel_external_sources = [ + 'rygel-external-container.vala', + 'rygel-external-dummy-container.vala', + 'rygel-external-item-factory.vala', + 'rygel-external-album-art-factory.vala', + 'rygel-external-thumbnail-factory.vala', + 'rygel-external-plugin.vala', + 'rygel-external-interfaces.vala', + 'rygel-external-plugin-factory.vala', + 'rygel-external-icon-factory.vala', + 'rygel-external-variant-util.vala', + 'rygel-free-desktop-interfaces.vala'] + +shared_module('rygel-external', + rygel_external_sources, + dependencies : external_plugin_deps + [build_config, rygel_core, rygel_server], + c_args : ['-DG_LOG_DOMAIN="External"'], + install: true, + install_dir: rygel_plugindir) diff --git a/src/plugins/gst-launch/meson.build b/src/plugins/gst-launch/meson.build new file mode 100644 index 00000000..41d42a20 --- /dev/null +++ b/src/plugins/gst-launch/meson.build @@ -0,0 +1,17 @@ +configure_file(input : 'gst-launch.plugin.in', + output : 'gst-launch.plugin', + configuration : plugin_config, + install_dir : rygel_plugindir) + +gst_launch_sources = [ + 'rygel-gst-launch-plugin.vala', + 'rygel-gst-launch-root-container.vala', + 'rygel-gst-launch-audio-item.vala', + 'rygel-gst-launch-video-item.vala'] + +shared_module('rygel-gst-launch', + gst_launch_sources, + dependencies: gst_launch_plugin_deps + [build_config, rygel_core, rygel_server], + c_args : ['-DG_LOG_DOMAIN="GstLaunch"'], + install : true, + install_dir : rygel_plugindir) diff --git a/src/plugins/lms/meson.build b/src/plugins/lms/meson.build new file mode 100644 index 00000000..b2cce615 --- /dev/null +++ b/src/plugins/lms/meson.build @@ -0,0 +1,30 @@ +configure_file(input : 'lms.plugin.in', + output : 'lms.plugin', + configuration : plugin_config, + install_dir : rygel_plugindir) + +lms_sources = [ + 'rygel-lms-plugin.vala', + 'rygel-lms-plugin-factory.vala', + 'rygel-lms-root-container.vala', + 'rygel-lms-music-root.vala', + 'rygel-lms-image-root.vala', + 'rygel-lms-category-container.vala', + 'rygel-lms-all-music.vala', + 'rygel-lms-album.vala', + 'rygel-lms-albums.vala', + 'rygel-lms-artist.vala', + 'rygel-lms-artists.vala', + 'rygel-lms-all-videos.vala', + 'rygel-lms-database.vala', + 'rygel-lms-all-images.vala', + 'rygel-lms-image-years.vala', + 'rygel-lms-image-year.vala', + 'rygel-lms-dbus-interfaces.vala'] + +shared_module('rygel-lms', + lms_sources, + dependencies : lms_deps + [build_config, rygel_core, rygel_server, rygel_db], + c_args : ['-DG_LOG_DOMAIN="LMS"'], + install : true, + install_dir : rygel_plugindir) diff --git a/src/plugins/media-export/meson.build b/src/plugins/media-export/meson.build new file mode 100644 index 00000000..f036e490 --- /dev/null +++ b/src/plugins/media-export/meson.build @@ -0,0 +1,65 @@ +configure_file(input : 'media-export.plugin.in', + output : 'media-export.plugin', + configuration : plugin_config, + install_dir : rygel_plugindir) + +constants = static_library('mx-constants', + 'constants.vala', + dependencies : glib, + vala_vapi: 'mx-constants.vapi', + install : false) + +mx_extract_sources = [ + 'rygel-media-export-extract.vala', + 'rygel-media-export-dvd-parser.vala', + 'rygel-media-export-playlist-extractor.vala', + 'rygel-media-export-image-extractor.vala', + 'rygel-media-export-extractor.vala', + 'rygel-media-export-generic-extractor.vala'] + +mx_extract = executable('mx-extract', + mx_extract_sources, + dependencies : mx_export_deps, + c_args : ['-DG_LOG_DOMAIN="MxExtract"'], + link_with: constants, + install: true, + install_dir: rygel_libexecdir) + +mx_sources = [ + 'rygel-media-export-plugin.vala', + 'rygel-media-export-db-container.vala', + 'rygel-media-export-sql-factory.vala', + 'rygel-media-export-media-cache.vala', + 'rygel-media-export-media-cache-upgrader.vala', + 'rygel-media-export-metadata-extractor.vala', + 'rygel-media-export-null-container.vala', + 'rygel-media-export-dummy-container.vala', + 'rygel-media-export-root-container.vala', + 'rygel-media-export-query-container.vala', + 'rygel-media-export-query-container-factory.vala', + 'rygel-media-export-node-query-container.vala', + 'rygel-media-export-leaf-query-container.vala', + 'rygel-media-export-recursive-file-monitor.vala', + 'rygel-media-export-harvester.vala', + 'rygel-media-export-harvesting-task.vala', + 'rygel-media-export-item-factory.vala', + 'rygel-media-export-object-factory.vala', + 'rygel-media-export-writable-db-container.vala', + 'rygel-media-export-playlist-root-container.vala', + 'rygel-media-export-playlist-container.vala', + 'rygel-media-export-music-item.vala', + 'rygel-media-export-video-item.vala', + 'rygel-media-export-photo-item.vala', + 'rygel-media-export-playlist-item.vala', + 'rygel-media-export-trackable-db-container.vala', + 'rygel-media-export-updatable-object.vala', + 'rygel-media-export-dvd-container.vala', + 'rygel-media-export-dvd-track.vala'] + +shared_module('rygel-media-export', + mx_sources, + dependencies : mx_plugin_deps + [rygel_core, rygel_server, rygel_db], + c_args : ['-DG_LOG_DOMAIN="MediaExport"'], + link_with : constants, + install: true, + install_dir : rygel_plugindir) diff --git a/src/plugins/meson.build b/src/plugins/meson.build new file mode 100644 index 00000000..48516265 --- /dev/null +++ b/src/plugins/meson.build @@ -0,0 +1,3 @@ +foreach plugin : get_option('plugins') + subdir(plugin) +endforeach diff --git a/src/plugins/mpris/meson.build b/src/plugins/mpris/meson.build new file mode 100644 index 00000000..1bdc6e6b --- /dev/null +++ b/src/plugins/mpris/meson.build @@ -0,0 +1,18 @@ +configure_file(input : 'mpris.plugin.in', + output : 'mpris.plugin', + configuration : plugin_config, + install_dir : rygel_plugindir) + +rygel_mpris_sources = [ + 'rygel-mpris-player.vala', + 'rygel-mpris-plugin.vala', + 'rygel-mpris-plugin-factory.vala', + 'rygel-mpris-interfaces.vala', + 'rygel-free-desktop-interfaces.vala'] + +shared_module('rygel-mpris', + rygel_mpris_sources, + dependencies : [build_config, rygel_core, rygel_renderer], + c_args : ['-DG_LOG_DOMAIN="MPRIS"'], + install: true, + install_dir: rygel_plugindir) diff --git a/src/plugins/playbin/meson.build b/src/plugins/playbin/meson.build new file mode 100644 index 00000000..4ac96071 --- /dev/null +++ b/src/plugins/playbin/meson.build @@ -0,0 +1,11 @@ +configure_file(input : 'playbin.plugin.in', + output : 'playbin.plugin', + configuration : plugin_config, + install_dir : rygel_plugindir) + +shared_module('rygel-playbin', + ['rygel-playbin-module.vala', 'rygel-playbin-plugin.vala'], + dependencies: [build_config, rygel_core, rygel_renderer, rygel_renderer_gst], + c_args : ['-DG_LOG_DOMAIN="Playbin"'], + install : true, + install_dir : rygel_plugindir) diff --git a/src/plugins/ruih/meson.build b/src/plugins/ruih/meson.build new file mode 100644 index 00000000..e81be3c0 --- /dev/null +++ b/src/plugins/ruih/meson.build @@ -0,0 +1,13 @@ +configure_file(input : 'ruih.plugin.in', + output : 'ruih.plugin', + configuration : plugin_config, + install_dir : rygel_plugindir) + +shared_module('rygel-ruih', + ['rygel-ruih-module.vala', 'rygel-ruih-plugin.vala'], + dependencies: [build_config, rygel_core, rygel_ruih], + # Needed to avoid conflict with librarie's header + vala_header : 'rygel-ruih-plugin.h', + c_args : ['-DG_LOG_DOMAIN="RUIH"'], + install : true, + install_dir : rygel_plugindir) diff --git a/src/plugins/tracker/meson.build b/src/plugins/tracker/meson.build new file mode 100644 index 00000000..1d925dda --- /dev/null +++ b/src/plugins/tracker/meson.build @@ -0,0 +1,49 @@ +configure_file(input : 'tracker.plugin.in', + output : 'tracker.plugin', + configuration : plugin_config, + install_dir : rygel_plugindir) + +rygel_tracker_sources = [ + 'rygel-tracker-root-container.vala', + 'rygel-tracker-category-container.vala', + 'rygel-tracker-music.vala', + 'rygel-tracker-videos.vala', + 'rygel-tracker-pictures.vala', + 'rygel-tracker-metadata-values.vala', + 'rygel-tracker-metadata-container.vala', + 'rygel-tracker-metadata-multivalues.vala', + 'rygel-tracker-tags.vala', + 'rygel-tracker-years.vala', + 'rygel-tracker-titles.vala', + 'rygel-tracker-albums.vala', + 'rygel-tracker-artists.vala', + 'rygel-tracker-genre.vala', + 'rygel-tracker-new.vala', + 'rygel-tracker-search-container.vala', + 'rygel-tracker-category-all-container.vala', + 'rygel-tracker-upnp-property-map.vala', + 'rygel-tracker-query.vala', + 'rygel-tracker-selection-query.vala', + 'rygel-tracker-deletion-query.vala', + 'rygel-tracker-insertion-query.vala', + 'rygel-tracker-cleanup-query.vala', + 'rygel-tracker-query-triplet.vala', + 'rygel-tracker-query-triplets.vala', + 'rygel-tracker-item-factory.vala', + 'rygel-tracker-video-item-factory.vala', + 'rygel-tracker-music-item-factory.vala', + 'rygel-tracker-picture-item-factory.vala', + 'rygel-tracker-plugin.vala', + 'rygel-tracker-plugin-factory.vala', + 'rygel-tracker-interfaces.vala'] + +shared_module('rygel-tracker', + rygel_tracker_sources, + dependencies : [ + common_deps, + dependency('tracker-sparql-2.0'), + build_config, rygel_core, rygel_server + ], + c_args : ['-DG_LOG_DOMAIN="RygelTracker"'], + install : true, + install_dir : rygel_plugindir) diff --git a/src/rygel/meson.build b/src/rygel/meson.build new file mode 100644 index 00000000..a4b55079 --- /dev/null +++ b/src/rygel/meson.build @@ -0,0 +1,11 @@ +rygel_sources = [ + 'rygel-acl.vala', + 'rygel-dbus-service.vala', + 'rygel-main.vala' + ] +executable('rygel', + rygel_sources, + c_args : ['-DG_LOG_DOMAIN="Rygel"'], + dependencies : rygel_deps + [build_config, rygel_core, rygel_server], + install: true + ) diff --git a/src/ui/meson.build b/src/ui/meson.build new file mode 100644 index 00000000..8f1004f9 --- /dev/null +++ b/src/ui/meson.build @@ -0,0 +1,12 @@ +rygel_preferences_sources = [ + 'rygel-preferences-dialog.vala', + 'rygel-preferences-section.vala', + 'rygel-media-pref-section.vala', + 'rygel-writable-user-config.vala', + 'rygel-network-pref-section.vala'] + +executable('rygel-preferences', + rygel_preferences_sources, + c_args : ['-DG_LOG_DOMAIN="RygelPreferences"'], + dependencies : ui_deps + [build_config, rygel_core], + install: true) diff --git a/tests/meson.build b/tests/meson.build new file mode 100644 index 00000000..a1e3a71a --- /dev/null +++ b/tests/meson.build @@ -0,0 +1,67 @@ +test_deps = common_deps + +searchable_container_test = executable( + 'rygel-searchable-container-test', + files('searchable-container/rygel-searchable-container.vala', + 'searchable-container/test.vala'), + dependencies : [test_deps, gupnp_av, gio] +) + +object_creator_test = executable( + 'rygel-object-creator-test', + files('object-creator/test.vala', + 'object-creator/rygel-object-creator.vala', + 'object-creator/rygel-dlna-profile.vala', + 'object-creator/rygel-serializer.vala', + 'object-creator/rygel-m3u-playlist.vala', + 'object-creator/rygel-state-machine.vala', + 'object-creator/rygel-search-expression.vala', + 'object-creator/rygel-relational-expression.vala', + 'object-creator/rygel-logical-expression.vala', + 'object-creator/rygel-search-criteria-parser.vala'), + dependencies : [test_deps, gio, gupnp_av, soup, libxml] +) + +user_config_test = executable( + 'rygel-user-config-test', + files('rygel-configuration.vala', + 'rygel-user-config.vala', + 'rygel-user-config-test.vala'), + vala_args : ['--pkg', 'rygel-build-config', '--vapidir', join_paths(meson.source_root(), 'src/librygel-core')], + include_directories : config_include, + dependencies : [test_deps, gio] +) + +regression_test = executable( + 'rygel-regression-test', + files('rygel-regression.vala'), + dependencies : [test_deps, gio, rygel_core, rygel_server] +) + +database_test = executable( + 'rygel-database-test.vala', + files('rygel-database-test.vala'), + dependencies : [rygel_db] +) + +environment_test = executable( + 'rygel-environment-test', + files('rygel-environment-test.vala'), + dependencies : [gstreamer] +) + +playbin_renderer_test = executable( + 'rygel-playbin-renderer-test', + files('rygel-playbin-renderer-test.vala'), + dependencies : [gstreamer, rygel_core, rygel_renderer, rygel_renderer_gst] +) + +test('rygel-searchable-container-test', searchable_container_test) +test('rygel-object-creator-test', object_creator_test) +test('rygel-regression-test', regression_test) +test('rygel-database-test', database_test) +test('rygel-environment-test', environment_test) +test('rygel-playbin-renderer-test', playbin_renderer_test) + +# Up the timeout, the test itself is waiting 10s per round for changes, doing 4 rounds +test('rygel-user-config-test', user_config_test, timeout : 50) |