mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-03 14:08:56 +00:00
Add support for Meson as alternative/parallel build system
https://github.com/mesonbuild/meson
This commit is contained in:
parent
3cf28775f3
commit
383c5d1f6d
15 changed files with 496 additions and 1 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -10,6 +10,7 @@
|
||||||
*.pyc
|
*.pyc
|
||||||
*.page
|
*.page
|
||||||
*.swp
|
*.swp
|
||||||
|
build*
|
||||||
*~
|
*~
|
||||||
core.*
|
core.*
|
||||||
|
|
||||||
|
|
13
config.h.meson
Normal file
13
config.h.meson
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#mesondefine VERSION
|
||||||
|
#mesondefine PACKAGE
|
||||||
|
#mesondefine PACKAGE_VERSION
|
||||||
|
#mesondefine PACKAGE_BUGREPORT
|
||||||
|
#mesondefine PACKAGE_NAME
|
||||||
|
#mesondefine GETTEXT_PACKAGE
|
||||||
|
#mesondefine GST_API_VERSION
|
||||||
|
#mesondefine GST_PACKAGE_NAME
|
||||||
|
#mesondefine GST_PACKAGE_ORIGIN
|
||||||
|
#mesondefine GST_LICENSE
|
||||||
|
#mesondefine LIBDIR
|
||||||
|
|
||||||
|
#mesondefine HAVE_GST_VALIDATE
|
27
docs/libs/meson.build
Normal file
27
docs/libs/meson.build
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
configure_file(input : 'ges.types',
|
||||||
|
output : 'ges.types',
|
||||||
|
configuration : configuration_data())
|
||||||
|
|
||||||
|
doc_deps_names = ['glib-2.0',
|
||||||
|
'gstreamer-@0@'.format(apiversion),
|
||||||
|
'gstreamer-plugins-base-@0@'.format(apiversion)]
|
||||||
|
|
||||||
|
doc_deps = []
|
||||||
|
foreach doc_dep : doc_deps_names
|
||||||
|
runcmd = run_command('pkg-config', '--variable=prefix', doc_dep)
|
||||||
|
if runcmd.returncode() == 0
|
||||||
|
tmp = '--extra-dir=' + runcmd.stdout().strip() + '/share/gtk-doc/html/'
|
||||||
|
tmp.strip()
|
||||||
|
doc_deps = doc_deps + [tmp]
|
||||||
|
endif
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
gnome.gtkdoc('gst-editing-services-@0@'.format(apiversion),
|
||||||
|
main_sgml : 'ges-docs.sgml',
|
||||||
|
src_dir : '@0@/ges'.format(meson.source_root()),
|
||||||
|
scan_args : ['--deprecated-guards=GST_DISABLE_DEPRECATED',
|
||||||
|
'--ignore-decorators=GST_EXPORT',
|
||||||
|
'--ignore-headers=gesmarshal.h ges-internal.h ges-auto-transition.h ges-structured-interface.h ges-structure-parser.h ges-smart-video-mixer.h gstframepositioner.h'
|
||||||
|
],
|
||||||
|
fixxref_args: doc_deps + ['--html-dir=' + get_option('prefix') + '/share/gtk-doc/html/'],
|
||||||
|
install : true)
|
11
docs/meson.build
Normal file
11
docs/meson.build
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
docconf = configuration_data()
|
||||||
|
|
||||||
|
docconf.set('GST_API_VERSION', apiversion)
|
||||||
|
docconf.set('PACKAGE_VERSION', gst_version)
|
||||||
|
docconf.set('PLUGINDIR', '@0@/lib/gstreamer-1.0'.format(get_option('prefix')))
|
||||||
|
|
||||||
|
configure_file(input : 'version.entities.in',
|
||||||
|
output : 'version.entities',
|
||||||
|
configuration : docconf)
|
||||||
|
|
||||||
|
subdir('libs')
|
29
examples/c/meson.build
Normal file
29
examples/c/meson.build
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
examples = [
|
||||||
|
'concatenate',
|
||||||
|
'simple1',
|
||||||
|
'test1',
|
||||||
|
'test2',
|
||||||
|
'test3',
|
||||||
|
'test4',
|
||||||
|
'transition',
|
||||||
|
'thumbnails',
|
||||||
|
'overlays',
|
||||||
|
'text_properties',
|
||||||
|
'assets',
|
||||||
|
'multifilesrc',
|
||||||
|
'play_timeline_with_one_clip'
|
||||||
|
]
|
||||||
|
|
||||||
|
# TODO Properly port to Gtk 3
|
||||||
|
#
|
||||||
|
# if gtk_dep.found()
|
||||||
|
# examples = examples + ['ges-ui']
|
||||||
|
# endif
|
||||||
|
|
||||||
|
|
||||||
|
foreach example_name : examples
|
||||||
|
exe = executable(example_name, '@0@.c'.format(example_name),
|
||||||
|
c_args : ges_c_args,
|
||||||
|
dependencies : libges_deps + [ges_dep],
|
||||||
|
)
|
||||||
|
endforeach
|
1
examples/meson.build
Normal file
1
examples/meson.build
Normal file
|
@ -0,0 +1 @@
|
||||||
|
subdir('c')
|
|
@ -23,7 +23,7 @@
|
||||||
#include "ges/ges-structured-interface.h"
|
#include "ges/ges-structured-interface.h"
|
||||||
#include "ges-structure-parser.h"
|
#include "ges-structure-parser.h"
|
||||||
#include "ges-internal.h"
|
#include "ges-internal.h"
|
||||||
#include "parse_lex.h"
|
#include "ges-parse-lex.h"
|
||||||
|
|
||||||
struct _GESCommandLineFormatterPrivate
|
struct _GESCommandLineFormatterPrivate
|
||||||
{
|
{
|
||||||
|
|
182
ges/meson.build
Normal file
182
ges/meson.build
Normal file
|
@ -0,0 +1,182 @@
|
||||||
|
ges_sources = [
|
||||||
|
'ges.c',
|
||||||
|
'ges-enums.c',
|
||||||
|
'ges-meta-container.c',
|
||||||
|
'ges-timeline.c',
|
||||||
|
'ges-layer.c',
|
||||||
|
'ges-clip.c',
|
||||||
|
'ges-pipeline.c',
|
||||||
|
'ges-source-clip.c',
|
||||||
|
'ges-base-effect-clip.c',
|
||||||
|
'ges-effect-clip.c',
|
||||||
|
'ges-uri-clip.c',
|
||||||
|
'ges-operation-clip.c',
|
||||||
|
'ges-base-transition-clip.c',
|
||||||
|
'ges-transition-clip.c',
|
||||||
|
'ges-test-clip.c',
|
||||||
|
'ges-title-clip.c',
|
||||||
|
'ges-overlay-clip.c',
|
||||||
|
'ges-text-overlay-clip.c',
|
||||||
|
'ges-track.c',
|
||||||
|
'ges-audio-track.c',
|
||||||
|
'ges-video-track.c',
|
||||||
|
'ges-track-element.c',
|
||||||
|
'ges-source.c',
|
||||||
|
'ges-operation.c',
|
||||||
|
'ges-video-source.c',
|
||||||
|
'ges-audio-source.c',
|
||||||
|
'ges-video-uri-source.c',
|
||||||
|
'ges-audio-uri-source.c',
|
||||||
|
'ges-image-source.c',
|
||||||
|
'ges-multi-file-source.c',
|
||||||
|
'ges-transition.c',
|
||||||
|
'ges-audio-transition.c',
|
||||||
|
'ges-video-transition.c',
|
||||||
|
'ges-video-test-source.c',
|
||||||
|
'ges-audio-test-source.c',
|
||||||
|
'ges-title-source.c',
|
||||||
|
'ges-text-overlay.c',
|
||||||
|
'ges-base-effect.c',
|
||||||
|
'ges-effect.c',
|
||||||
|
'ges-screenshot.c',
|
||||||
|
'ges-formatter.c',
|
||||||
|
'ges-pitivi-formatter.c',
|
||||||
|
'ges-asset.c',
|
||||||
|
'ges-uri-asset.c',
|
||||||
|
'ges-clip-asset.c',
|
||||||
|
'ges-track-element-asset.c',
|
||||||
|
'ges-extractable.c',
|
||||||
|
'ges-project.c',
|
||||||
|
'ges-base-xml-formatter.c',
|
||||||
|
'ges-xml-formatter.c',
|
||||||
|
'ges-command-line-formatter.c',
|
||||||
|
'ges-auto-transition.c',
|
||||||
|
'ges-timeline-element.c',
|
||||||
|
'ges-container.c',
|
||||||
|
'ges-effect-asset.c',
|
||||||
|
'ges-smart-adder.c',
|
||||||
|
'ges-smart-video-mixer.c',
|
||||||
|
'ges-utils.c',
|
||||||
|
'ges-group.c',
|
||||||
|
'ges-validate.c',
|
||||||
|
'ges-structured-interface.c',
|
||||||
|
'ges-structure-parser.c',
|
||||||
|
'gstframepositioner.c'
|
||||||
|
]
|
||||||
|
|
||||||
|
ges_headers = [
|
||||||
|
'ges-types.h',
|
||||||
|
'ges.h',
|
||||||
|
'ges-enums.h',
|
||||||
|
'ges-gerror.h',
|
||||||
|
'ges-meta-container.h',
|
||||||
|
'ges-timeline.h',
|
||||||
|
'ges-layer.h',
|
||||||
|
'ges-clip.h',
|
||||||
|
'ges-pipeline.h',
|
||||||
|
'ges-source-clip.h',
|
||||||
|
'ges-uri-clip.h',
|
||||||
|
'ges-base-effect-clip.h',
|
||||||
|
'ges-effect-clip.h',
|
||||||
|
'ges-operation-clip.h',
|
||||||
|
'ges-base-transition-clip.h',
|
||||||
|
'ges-transition-clip.h',
|
||||||
|
'ges-test-clip.h',
|
||||||
|
'ges-title-clip.h',
|
||||||
|
'ges-overlay-clip.h',
|
||||||
|
'ges-text-overlay-clip.h',
|
||||||
|
'ges-base-effect.h',
|
||||||
|
'ges-effect.h',
|
||||||
|
'ges-track.h',
|
||||||
|
'ges-audio-track.h',
|
||||||
|
'ges-video-track.h',
|
||||||
|
'ges-track-element.h',
|
||||||
|
'ges-source.h',
|
||||||
|
'ges-operation.h',
|
||||||
|
'ges-video-source.h',
|
||||||
|
'ges-audio-source.h',
|
||||||
|
'ges-video-uri-source.h',
|
||||||
|
'ges-audio-uri-source.h',
|
||||||
|
'ges-image-source.h',
|
||||||
|
'ges-multi-file-source.h',
|
||||||
|
'ges-transition.h',
|
||||||
|
'ges-audio-transition.h',
|
||||||
|
'ges-video-transition.h',
|
||||||
|
'ges-video-test-source.h',
|
||||||
|
'ges-audio-test-source.h',
|
||||||
|
'ges-title-source.h',
|
||||||
|
'ges-text-overlay.h',
|
||||||
|
'ges-screenshot.h',
|
||||||
|
'ges-formatter.h',
|
||||||
|
'ges-pitivi-formatter.h',
|
||||||
|
'ges-asset.h',
|
||||||
|
'ges-uri-asset.h',
|
||||||
|
'ges-clip-asset.h',
|
||||||
|
'ges-track-element-asset.h',
|
||||||
|
'ges-extractable.h',
|
||||||
|
'ges-project.h',
|
||||||
|
'ges-base-xml-formatter.h',
|
||||||
|
'ges-xml-formatter.h',
|
||||||
|
'ges-command-line-formatter.h',
|
||||||
|
'ges-timeline-element.h',
|
||||||
|
'ges-container.h',
|
||||||
|
'ges-effect-asset.h',
|
||||||
|
'ges-smart-adder.h',
|
||||||
|
'ges-utils.h',
|
||||||
|
'ges-group.h'
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
version_data = configuration_data()
|
||||||
|
version_data.set('GES_VERSION_MAJOR', gst_version_major)
|
||||||
|
version_data.set('GES_VERSION_MINOR', gst_version_minor)
|
||||||
|
version_data.set('GES_VERSION_MICRO', gst_version_micro)
|
||||||
|
version_data.set('GES_VERSION_NANO', gst_version_nano)
|
||||||
|
|
||||||
|
configure_file(input : 'ges-version.h.in',
|
||||||
|
output : 'ges-version.h',
|
||||||
|
configuration : version_data)
|
||||||
|
|
||||||
|
install_headers(ges_headers + ['ges-version.h'], subdir : 'gstreamer-1.0/ges')
|
||||||
|
|
||||||
|
flex = find_program('flex', required : false)
|
||||||
|
if not flex.found()
|
||||||
|
flex = find_program('win_flex', required : false)
|
||||||
|
if not flex.found()
|
||||||
|
error('flex not found')
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
parser = custom_target('gesparselex',
|
||||||
|
input : 'parse.l',
|
||||||
|
output : ['lex.priv_ges_parse_yy.c', 'ges-parse-lex.h'],
|
||||||
|
command : [flex, '-Ppriv_ges_parse_yy', '--header-file=@OUTPUT1@', '-o', '@OUTPUT0@', '@INPUT@']
|
||||||
|
)
|
||||||
|
|
||||||
|
libges = shared_library('ges-1.0', ges_sources, parser,
|
||||||
|
version : libversion,
|
||||||
|
soversion : soversion,
|
||||||
|
c_args : [ges_c_args],
|
||||||
|
include_directories : [configinc],
|
||||||
|
install : true,
|
||||||
|
dependencies : libges_deps
|
||||||
|
)
|
||||||
|
|
||||||
|
if build_gir
|
||||||
|
gnome.generate_gir(libges,
|
||||||
|
sources : ges_sources + ges_headers,
|
||||||
|
namespace : 'GES',
|
||||||
|
nsversion : apiversion,
|
||||||
|
identifier_prefix : 'GES',
|
||||||
|
symbol_prefix : 'ges',
|
||||||
|
export_packages : 'ges-1.0',
|
||||||
|
includes : ['Gst-1.0', 'GstPbutils-1.0', 'GstVideo-1.0', 'Gio-2.0'],
|
||||||
|
install : true,
|
||||||
|
dependencies : libges_deps,
|
||||||
|
extra_args : gir_init_section
|
||||||
|
)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ges_dep = declare_dependency(link_with : libges,
|
||||||
|
include_directories : [configinc],
|
||||||
|
)
|
100
meson.build
Normal file
100
meson.build
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
project('gst-editing-services', 'c',
|
||||||
|
version : '1.9.1.1',
|
||||||
|
meson_version : '>= 0.33.0',
|
||||||
|
default_options : [ 'warning_level=1',
|
||||||
|
'c_std=gnu99',
|
||||||
|
'buildtype=debugoptimized' ])
|
||||||
|
|
||||||
|
gst_version = meson.project_version()
|
||||||
|
version_arr = gst_version.split('.')
|
||||||
|
gst_version_major = version_arr[0]
|
||||||
|
gst_version_minor = version_arr[1]
|
||||||
|
gst_version_micro = version_arr[2]
|
||||||
|
if version_arr.length() == 4
|
||||||
|
gst_version_nano = version_arr[3]
|
||||||
|
else
|
||||||
|
gst_version_nano = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
apiversion = '1.0'
|
||||||
|
soversion = 0
|
||||||
|
# maintaining compatibility with the previous libtool versioning
|
||||||
|
# current = minor * 100 + micro
|
||||||
|
libversion = '@0@.@1@.0'.format(soversion, gst_version_minor.to_int() * 100 + gst_version_micro.to_int())
|
||||||
|
|
||||||
|
glib_req = '>= 2.40.0'
|
||||||
|
gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)
|
||||||
|
|
||||||
|
cc = meson.get_compiler('c')
|
||||||
|
# Ignore several spurious warnings for things gstreamer does very commonly
|
||||||
|
# If a warning is completely useless and spammy, use '/wdXXXX' to suppress it
|
||||||
|
# If a warning is harmless but hard to fix, use '/woXXXX' so it's shown once
|
||||||
|
# NOTE: Only add warnings here if you are sure they're spurious
|
||||||
|
if cc.get_id() == 'msvc'
|
||||||
|
add_global_arguments('/wd4018', '/wd4244', '/wd4996', language : 'c')
|
||||||
|
endif
|
||||||
|
|
||||||
|
cdata = configuration_data()
|
||||||
|
cdata.set('VERSION', '"@0@"'.format(gst_version))
|
||||||
|
cdata.set('PACKAGE', '"gst-editing-services"')
|
||||||
|
cdata.set('PACKAGE_VERSION', '"@0@"'.format(gst_version))
|
||||||
|
cdata.set('PACKAGE_BUGREPORT', '"http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer"')
|
||||||
|
cdata.set('PACKAGE_NAME', '"GStreamer Editing Services"')
|
||||||
|
cdata.set('GST_PACKAGE_NAME', '"GStreamer Editing Services"')
|
||||||
|
cdata.set('GST_PACKAGE_ORIGIN', '"Unknown package origin"')
|
||||||
|
cdata.set('GST_LICENSE', '"LGPL"')
|
||||||
|
cdata.set('LIBDIR', '"@0@"'.format(get_option('libdir')))
|
||||||
|
|
||||||
|
# Mandatory GST deps
|
||||||
|
gst_dep = dependency('gstreamer-' + apiversion, version : gst_req,
|
||||||
|
fallback : ['gstreamer', 'gst_dep'])
|
||||||
|
gstpbutils_dep = dependency('gstreamer-pbutils-' + apiversion, version : gst_req,
|
||||||
|
fallback : ['gst-plugins-base', 'pbutils_dep'])
|
||||||
|
gstvideo_dep = dependency('gstreamer-video-' + apiversion, version : gst_req,
|
||||||
|
fallback : ['gst-plugins-base', 'video_dep'])
|
||||||
|
gstbase_dep = dependency('gstreamer-base-1.0', version : gst_req,
|
||||||
|
fallback : ['gstreamer', 'gst_base_dep'])
|
||||||
|
gstcheck_dep = dependency('gstreamer-check-1.0', version : gst_req,
|
||||||
|
fallback : ['gstreamer', 'gst_check_dep'])
|
||||||
|
gstcontroller_dep = dependency('gstreamer-controller-1.0', version : gst_req,
|
||||||
|
fallback : ['gstreamer', 'gst_controller_dep'])
|
||||||
|
gstvalidate_dep = dependency('gst-validate-1.0', version : gst_req, required : false,
|
||||||
|
fallback : ['gst-devtools', 'validate_dep'])
|
||||||
|
|
||||||
|
gio_dep = dependency('gio-2.0', version : glib_req)
|
||||||
|
libxml_dep = dependency('libxml-2.0')
|
||||||
|
|
||||||
|
# TODO Properly port to Gtk 3
|
||||||
|
# gtk_dep = dependency('gtk+-3.0', required : false)
|
||||||
|
|
||||||
|
libges_deps = [gst_dep, gstbase_dep, gstvideo_dep, gstpbutils_dep,
|
||||||
|
gstcheck_dep, gstcontroller_dep, gio_dep, libxml_dep]
|
||||||
|
|
||||||
|
if gstvalidate_dep.found()
|
||||||
|
libges_deps = libges_deps + [gstvalidate_dep]
|
||||||
|
cdata.set('HAVE_GST_VALIDATE', 1)
|
||||||
|
endif
|
||||||
|
|
||||||
|
configure_file(input : 'config.h.meson',
|
||||||
|
output : 'config.h',
|
||||||
|
configuration : cdata)
|
||||||
|
|
||||||
|
|
||||||
|
gir = find_program('g-ir-scanner', required : false)
|
||||||
|
gnome = import('gnome')
|
||||||
|
|
||||||
|
# Fixme, not very elegant.
|
||||||
|
build_gir = gir.found() and not meson.is_cross_build()
|
||||||
|
gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**); gst_init(NULL,NULL);' ]
|
||||||
|
|
||||||
|
ges_c_args = ['-DHAVE_CONFIG_H']
|
||||||
|
plugins_install_dir = '@0@/gstreamer-1.0'.format(get_option('libdir'))
|
||||||
|
|
||||||
|
configinc = include_directories('.')
|
||||||
|
subdir('ges')
|
||||||
|
subdir('plugins')
|
||||||
|
subdir('tools')
|
||||||
|
subdir('pkgconfig')
|
||||||
|
subdir('tests')
|
||||||
|
subdir('examples')
|
||||||
|
subdir('docs')
|
22
pkgconfig/meson.build
Normal file
22
pkgconfig/meson.build
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
pkgconf = configuration_data()
|
||||||
|
|
||||||
|
pkgconf.set('prefix', get_option('prefix'))
|
||||||
|
pkgconf.set('exec_prefix', '${prefix}')
|
||||||
|
pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir')))
|
||||||
|
pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
|
||||||
|
pkgconf.set('GST_API_VERSION', apiversion)
|
||||||
|
pkgconf.set('VERSION', gst_version)
|
||||||
|
|
||||||
|
pkg_install_dir = '@0@/pkgconfig'.format(get_option('libdir'))
|
||||||
|
|
||||||
|
pkg_files = ['gst-editing-services']
|
||||||
|
|
||||||
|
foreach p : pkg_files
|
||||||
|
infile = p + '.pc.in'
|
||||||
|
outfile = p + '-1.0.pc'
|
||||||
|
configure_file(input : infile,
|
||||||
|
output : outfile,
|
||||||
|
configuration : pkgconf,
|
||||||
|
install_dir : pkg_install_dir)
|
||||||
|
endforeach
|
||||||
|
|
1
plugins/meson.build
Normal file
1
plugins/meson.build
Normal file
|
@ -0,0 +1 @@
|
||||||
|
subdir('nle')
|
17
plugins/nle/meson.build
Normal file
17
plugins/nle/meson.build
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
nle_sources = ['nleobject.c',
|
||||||
|
'nlecomposition.c',
|
||||||
|
'nleghostpad.c',
|
||||||
|
'nleoperation.c',
|
||||||
|
'nlesource.c',
|
||||||
|
'nleurisource.c',
|
||||||
|
'gstnle.c'
|
||||||
|
]
|
||||||
|
|
||||||
|
nle = library('gstnle', nle_sources,
|
||||||
|
dependencies : [gst_dep, gstbase_dep],
|
||||||
|
include_directories: [configinc],
|
||||||
|
c_args : ges_c_args,
|
||||||
|
install : true,
|
||||||
|
install_dir : plugins_install_dir,
|
||||||
|
)
|
||||||
|
|
73
tests/check/meson.build
Normal file
73
tests/check/meson.build
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
# tests and condition when to skip the test
|
||||||
|
ges_tests = [
|
||||||
|
['ges/asset'],
|
||||||
|
['ges/backgroundsource'],
|
||||||
|
['ges/basic'],
|
||||||
|
['ges/layer'],
|
||||||
|
['ges/effects'],
|
||||||
|
['ges/uriclip'],
|
||||||
|
['ges/clip'],
|
||||||
|
['ges/timelineedition'],
|
||||||
|
['ges/titles'],
|
||||||
|
['ges/transition'],
|
||||||
|
['ges/overlays'],
|
||||||
|
['ges/text_properties'],
|
||||||
|
['ges/mixers'],
|
||||||
|
['ges/group'],
|
||||||
|
['ges/project'],
|
||||||
|
['ges/track'],
|
||||||
|
['ges/tempochange'],
|
||||||
|
['nle/simple'],
|
||||||
|
['nle/complex'],
|
||||||
|
['nle/nleoperation'],
|
||||||
|
['nle/nlecomposition'],
|
||||||
|
['nle/tempochange']
|
||||||
|
]
|
||||||
|
|
||||||
|
test_defines = [
|
||||||
|
'-UG_DISABLE_ASSERT',
|
||||||
|
'-UG_DISABLE_CAST_CHECKS',
|
||||||
|
'-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
|
||||||
|
'-DTESTFILE="' + meson.current_source_dir() + '/meson.build"',
|
||||||
|
'-DGST_USE_UNSTABLE_API',
|
||||||
|
]
|
||||||
|
|
||||||
|
runcmd = run_command('pkg-config', '--variable=pluginsdir', 'gstreamer-1.0',
|
||||||
|
'gstreamer-plugins-base-1.0', 'gstreamer-plugins-bad-1.0')
|
||||||
|
if runcmd.returncode() == 0
|
||||||
|
needed_plugins_dirs = meson.build_root() + 'plugins/nle'
|
||||||
|
foreach path: runcmd.stdout().strip().split(' ')
|
||||||
|
needed_plugins_dirs = needed_plugins_dirs + ':' + path
|
||||||
|
endforeach
|
||||||
|
else
|
||||||
|
error('Could not determine GStreamer core plugins directory for unit tests.')
|
||||||
|
endif
|
||||||
|
|
||||||
|
test_env = [
|
||||||
|
'GST_PLUGIN_SYSTEM_PATH_1_0=',
|
||||||
|
'GST_PLUGIN_PATH_1_0=' + needed_plugins_dirs,
|
||||||
|
'GST_PLUGIN_SCANNER_1_0='+ meson.build_root() + '/libs/gst/helpers/gst-plugin-scanner',
|
||||||
|
'GST_STATE_IGNORE_ELEMENTS=',
|
||||||
|
'CK_DEFAULT_TIMEOUT=20',
|
||||||
|
]
|
||||||
|
|
||||||
|
foreach t : ges_tests
|
||||||
|
test_name = t.get(0)
|
||||||
|
if t.length() == 2
|
||||||
|
skip_test = t.get(1)
|
||||||
|
else
|
||||||
|
skip_test = false
|
||||||
|
endif
|
||||||
|
|
||||||
|
if not skip_test
|
||||||
|
exe = executable(test_name, '@0@.c'.format(test_name),
|
||||||
|
'ges/test-utils.c', 'nle/common.c',
|
||||||
|
c_args : ges_c_args + test_defines,
|
||||||
|
include_directories : [configinc],
|
||||||
|
dependencies : libges_deps + [gstcheck_dep, ges_dep],
|
||||||
|
)
|
||||||
|
test(test_name, exe,
|
||||||
|
env: test_env + ['GST_REGISTRY=@0@/@1@.registry'.format(meson.current_build_dir(), test_name)]
|
||||||
|
)
|
||||||
|
endif
|
||||||
|
endforeach
|
5
tests/meson.build
Normal file
5
tests/meson.build
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# FIXME: make check work on windows
|
||||||
|
if host_machine.system() != 'windows'
|
||||||
|
subdir('check')
|
||||||
|
endif
|
||||||
|
|
13
tools/meson.build
Normal file
13
tools/meson.build
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
deps = [ges_dep, gstpbutils_dep, gio_dep]
|
||||||
|
|
||||||
|
ges_tool_args = [ges_c_args]
|
||||||
|
if gstvalidate_dep.found()
|
||||||
|
deps = deps + [gstvalidate_dep]
|
||||||
|
ges_tool_args += ['-DGST_USE_UNSTABLE_API']
|
||||||
|
endif
|
||||||
|
|
||||||
|
executable('ges-launch-@0@'.format(apiversion),
|
||||||
|
'ges-validate.c', 'ges-launch.c', 'ges-launcher.c', 'utils.c',
|
||||||
|
c_args : [ges_tool_args],
|
||||||
|
dependencies : deps
|
||||||
|
)
|
Loading…
Reference in a new issue