mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-18 13:25: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
|
||||
*.page
|
||||
*.swp
|
||||
build*
|
||||
*~
|
||||
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-structure-parser.h"
|
||||
#include "ges-internal.h"
|
||||
#include "parse_lex.h"
|
||||
#include "ges-parse-lex.h"
|
||||
|
||||
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