[rygel/wip/meson: 8/28] WIP



commit d91dba070767848a7f8b242914e425fd6cf6a0b4
Author: Jens Georg <mail jensge org>
Date:   Sat May 20 12:43:19 2017 +0200

    WIP

 meson.build                             |   21 +++++
 src/librygel-core/meson.build           |   34 ++++++++-
 src/librygel-renderer/meson.build       |   45 +++++++++++
 src/librygel-server/meson.build         |  130 +++++++++++++++++++++++++++++++
 src/media-engines/gstreamer/meson.build |   22 +++++
 src/media-engines/meson.build           |    2 +
 src/meson.build                         |    3 +
 7 files changed, 255 insertions(+), 2 deletions(-)
---
diff --git a/meson.build b/meson.build
index ca006ff..7c63da0 100644
--- a/meson.build
+++ b/meson.build
@@ -4,6 +4,9 @@ project('rygel', ['vala', 'c'],
 rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir'))
 rygel_datadir = join_paths(get_option('prefix'), get_option('datadir'))
 rygel_plugindir = join_paths(get_option('prefix'), get_option('libdir'), 'rygel-2.6', 'plugins')
+rygel_enginedir = join_paths(get_option('prefix'), get_option('libdir'),
+'rygel-2.6', 'engines')
+rygel_presetdir = join_paths(rygel_datadir, 'rygel', 'presets')
 rygel_bigicondir = join_paths(rygel_datadir, 'rygel', 'icons', '120x120')
 rygel_smallicondir = join_paths(rygel_datadir, 'rygel', 'icons', '48x48')
 
@@ -11,12 +14,16 @@ conf = configuration_data()
 conf.set('GETTEXT_PACKAGE', '"rygel"')
 conf.set('PACKAGE_NAME', '"Rygel"')
 conf.set('PACKAGE_STRING', '"Rygel @0@"'.format(meson.project_version()))
+conf.set('PACKAGE_VERSION', '"@0@"'.format(meson.project_version()))
+conf.set('ENGINE_DIR', '"@0@"'.format(rygel_enginedir))
+conf.set('PRESET_DIR', '"@0@"'.format(rygel_presetdir))
 conf.set('DATA_DIR', '"@0@"'.format(rygel_datadir))
 conf.set('PLUGIN_DIR', '"@0@"'.format(rygel_plugindir))
 conf.set('BIG_ICON_DIR', '"@0@"'.format(rygel_bigicondir))
 conf.set('SMALL_ICON_DIR', '"@0@"'.format(rygel_smallicondir))
 conf.set('SYS_CONFIG_DIR', '"@0@"'.format(rygel_sysconfdir))
 configure_file(output: 'config.h', configuration: conf)
+config_include = include_directories('.')
 
 add_global_arguments(['-include','config.h'], language : 'c')
 
@@ -27,9 +34,21 @@ gssdp = dependency('gssdp-1.0', version : '>= 0.13.0')
 gio = dependency('gio-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')
+
+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')
+
 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')
 
 cc = meson.get_compiler('c')
 math = cc.find_library('m', required: false)
@@ -37,5 +56,7 @@ math = cc.find_library('m', required: false)
 common_deps = [gupnp, gee]
 
 core_deps = common_deps + [gssdp, gio, gmodule, libxml, posix, math]
+renderer_deps = common_deps + [gupnp_av, soup]
+server_deps = common_deps + [gssdp, gupnp_av, soup, mediaart, gmodule, libxml]
 
 subdir('src')
diff --git a/src/librygel-core/meson.build b/src/librygel-core/meson.build
index 446d8cf..667721d 100644
--- a/src/librygel-core/meson.build
+++ b/src/librygel-core/meson.build
@@ -31,11 +31,41 @@ core_sources = [
     'rygel-energy-management-helper.c',
     'rygel-build-config.vapi']
 
+build_config = declare_dependency(include_directories : config_include,
+                                  sources : 'rygel-build-config.vapi')
+
+
 core_lib = library('rygel-core-2.6', core_sources,
         dependencies : core_deps,
-        include_directories: include_directories('../..'),
+        include_directories: [config_include, include_directories('.')],
         version: '2.0.4',
         vala_gir : 'Rygel-2.6.gir',
         vala_header : 'rygel-core.h',
         install: true,
-        install_dirs : [true, true, true, true])
+        install_dir : [true, true, true, false])
+
+custom_target('RygelCore-2.6.typelib',
+               command: [g_ir_compiler, '--output', '@OUTPUT@', '@INPUT@'],
+               output: 'RygelCore-2.6.typelib',
+               input: 'RygelCore-2.6.gir',
+               depends: core_lib,
+               install: true,
+               install_dir: gir_dir)
+
+custom_target('RygelCore-2.6.gir',
+              command: [sed, '-e', 's,Rygel\.,RygelCore.,g',
+                        '-e', 's,namespace name="Rygel",namespace name="RygelCore",g',
+                        '@INPUT@'],
+              input: 'Rygel-2.6.gir',
+              output: 'RygelCore-2.6.gir',
+              capture: true,
+              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-renderer/meson.build b/src/librygel-renderer/meson.build
new file mode 100644
index 0000000..4387c8c
--- /dev/null
+++ b/src/librygel-renderer/meson.build
@@ -0,0 +1,45 @@
+renderer_sources = [
+    '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',
+        vala_gir : 'Rygel-2.6.gir',
+        vala_header : 'rygel-renderer.h',
+        install: true,
+        install_dir : [true, true, true, false])
+
+custom_target('RygelRenderer-2.6.typelib',
+               command: [g_ir_compiler,
+                        '--output', '@OUTPUT@',
+                        '--includedir', core_girdir,
+                        '@INPUT@'],
+               output: 'RygelRenderer-2.6.typelib',
+               input: 'RygelRenderer-2.6.gir',
+               depends: renderer_lib,
+               install: true,
+               install_dir: typelib_dir)
+
+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"/>|',
+                        '@INPUT@'],
+              input: 'Rygel-2.6.gir',
+              output: 'RygelRenderer-2.6.gir',
+              capture: true,
+              install: true,
+              install_dir: join_paths(get_option('datadir'),'gir-1.0'))
+
diff --git a/src/librygel-server/meson.build b/src/librygel-server/meson.build
new file mode 100644
index 0000000..ef3fffe
--- /dev/null
+++ b/src/librygel-server/meson.build
@@ -0,0 +1,130 @@
+server_sources = [
+    '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',
+        vala_gir : 'Rygel-2.6.gir',
+        vala_header : 'rygel-server.h',
+        install: true,
+        install_dir : [true, true, true, false])
+
+custom_target('RygelServer-2.6.typelib',
+               command: [g_ir_compiler,
+                        '--output', '@OUTPUT@',
+                        '--includedir', core_girdir,
+                        '@INPUT@'],
+               output: 'RygelServer-2.6.typelib',
+               input: 'RygelServer-2.6.gir',
+               depends: server_lib,
+               install: true,
+               install_dir: typelib_dir)
+
+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"/>|',
+                        '@INPUT@'],
+              input: 'Rygel-2.6.gir',
+              output: 'RygelServer-2.6.gir',
+              capture: true,
+              install: true,
+              install_dir: join_paths(get_option('datadir'),'gir-1.0'))
+
+# 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()
diff --git a/src/media-engines/gstreamer/meson.build b/src/media-engines/gstreamer/meson.build
new file mode 100644
index 0000000..a6dbd38
--- /dev/null
+++ b/src/media-engines/gstreamer/meson.build
@@ -0,0 +1,22 @@
+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-l16-transcoder.vala',
+    'rygel-mp2ts-transcoder.vala',
+    'rygel-mp3-transcoder.vala',
+    'rygel-video-transcoder.vala',
+    'rygel-wmv-transcoder.vala'
+    ]
+
+
+library('rygel-media-engine-gst',
+        media_engine_gst_sources,
+        dependencies: [build_config, gee, gupnp_av, libxml, gio, rygel_core, rygel_server, gstreamer, 
gstreamer_pbu, gstreamer_base, gupnp_dlna],
+        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 0000000..e859166
--- /dev/null
+++ b/src/media-engines/meson.build
@@ -0,0 +1,2 @@
+subdir('gstreamer')
+#subdir('simple')
diff --git a/src/meson.build b/src/meson.build
index 21b1bf5..76e26a9 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -1 +1,4 @@
 subdir('librygel-core')
+subdir('librygel-renderer')
+subdir('librygel-server')
+subdir('media-engines')


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]