gstreamer/tests/check/meson.build
Nirbheek Chauhan b2f9808722 Add support for Meson as alternative/parallel build system
https://github.com/mesonbuild/meson

With contributions from:

Tim-Philipp Müller <tim@centricular.com>
Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
Jussi Pakkanen <jpakkane@gmail.com> (original port)

Highlights of the features provided are:
* Faster builds on Linux (~40-50% faster)
* The ability to build with MSVC on Windows
* Generate Visual Studio project files
* Generate XCode project files
* Much faster builds on Windows (on-par with Linux)
* Seriously fast configure and building on embedded

... and many more. For more details see:

http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html

Building with Meson should work on both Linux and Windows, but may
need a few more tweaks on other operating systems.
2016-08-19 21:26:14 +01:00

159 lines
5.1 KiB
Meson

have_registry = not get_option('disable_registry')
have_debug = true # FIXME
have_parse = true # FIXME
# tests and condition when to skip the test
core_tests = [
[ 'gst/gst', not have_registry ],
[ 'gst/gstabi', not have_registry ],
[ 'gst/gstatomicqueue' ],
[ 'gst/gstbuffer' ],
[ 'gst/gstbufferlist' ],
[ 'gst/gstbufferpool' ],
[ 'gst/gstchildproxy', not have_registry ],
[ 'gst/gstclock' ],
[ 'gst/gstcontext' ],
[ 'gst/gstcontroller' ],
[ 'gst/gstcaps' ],
[ 'gst/gstcapsfeatures' ],
[ 'gst/gstdatetime' ],
[ 'gst/gstdevice' ],
[ 'gst/gstelement', not have_registry ],
[ 'gst/gstelementfactory', not have_registry ],
[ 'gst/gstghostpad', not have_registry ],
[ 'gst/gstinfo' ],
[ 'gst/gstiterator' ],
[ 'gst/gstmessage' ],
[ 'gst/gstmemory' ],
[ 'gst/gstmeta' ],
[ 'gst/gstminiobject' ],
[ 'gst/gstobject' ],
[ 'gst/gstpad', not have_registry ],
[ 'gst/gstparamspecs' ],
[ 'gst/gstprintf', not have_debug ],
[ 'gst/gstpipeline', not have_registry ],
[ 'gst/gstpoll' ],
[ 'gst/gstplugin', not have_registry ],
[ 'gst/gstpreset' ],
[ 'gst/gstprotection' ],
[ 'gst/gstquery', not have_registry ],
[ 'gst/gstregistry', not have_registry ],
[ 'gst/gstsegment' ],
[ 'gst/gststream' ],
[ 'gst/gststructure' ],
[ 'gst/gstsystemclock' ],
[ 'gst/gsttag' ],
[ 'gst/gsttagsetter' ],
[ 'gst/gsttask' ],
[ 'gst/gsttoc' ],
[ 'gst/gsttocsetter' ],
[ 'gst/gsttracerrecord' ],
[ 'gst/gsturi' ],
[ 'gst/gstutils', not have_registry ],
[ 'gst/gstvalue' ],
[ 'generic/states', not have_registry ],
[ 'libs/adapter' ],
[ 'libs/baseparse' ],
[ 'libs/basesrc', not have_registry ],
[ 'libs/basesink', not have_registry ],
[ 'libs/bitreader' ],
[ 'libs/bytereader' ],
[ 'libs/bytewriter' ],
[ 'libs/bitreader-noinline' ],
[ 'libs/bytereader-noinline' ],
[ 'libs/bytewriter-noinline' ],
[ 'libs/collectpads', not have_registry ],
[ 'libs/controller' ],
[ 'libs/flowcombiner' ],
[ 'libs/gstharness' ],
[ 'libs/gstnetclientclock' ],
[ 'libs/gstnettimeprovider' ],
[ 'libs/gsttestclock' ],
[ 'libs/libsabi' ],
[ 'libs/sparsefile' ],
[ 'libs/transform1' ],
[ 'libs/transform2' ],
[ 'libs/typefindhelper' ],
[ 'libs/queuearray' ],
[ 'elements/capsfilter', not have_registry ],
[ 'elements/concat', not have_registry ],
[ 'elements/fakesrc', not have_registry ],
[ 'elements/fdsrc', not have_registry ],
[ 'elements/filesink', not have_registry ],
[ 'elements/filesrc', not have_registry ],
[ 'elements/funnel', not have_registry ],
[ 'elements/identity', not have_registry ],
[ 'elements/multiqueue', not have_registry ],
[ 'elements/selector', not have_registry ],
[ 'elements/streamiddemux', not have_registry ],
[ 'elements/tee', not have_registry ],
[ 'elements/queue', not have_registry ],
[ 'elements/queue2', not have_registry ],
[ 'elements/valve', not have_registry ],
[ 'pipelines/seek', not have_registry ],
[ 'pipelines/queue-error', not have_registry ],
[ 'pipelines/parse-disabled', have_parse ],
[ 'pipelines/simple-launch-lines', not have_parse ],
[ 'pipelines/parse-launch', not have_parse ],
[ 'pipelines/cleanup', not have_parse ],
[ 'tools/gstinspect' ],
# These take quite long, put them at the end
[ 'elements/fakesink', not have_registry ],
[ 'gst/gstbin', not have_registry ],
[ 'gst/gstbus', not have_registry ],
[ 'gst/gstevent', not have_registry ],
[ 'pipelines/stress', not have_registry ],
[ 'generic/sinks', not have_registry ],
]
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',
]
test_env = [
'GST_PLUGIN_SYSTEM_PATH_1_0=',
'GST_PLUGIN_PATH_1_0=' + meson.build_root() + '/plugins',
'GST_PLUGIN_SCANNER_1_0='+ meson.build_root() + '/libs/gst/helpers/gst-plugin-scanner',
'GST_STATE_IGNORE_ELEMENTS=',
'CK_DEFAULT_TIMEOUT=20',
]
glib_deps = [gio_dep, gobject_dep, gmodule_dep, glib_dep]
gst_deps = [gst_dep, gst_base_dep, gst_check_dep, gst_net_dep, gst_controller_dep]
foreach t : core_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),
c_args : gst_c_args + test_defines,
include_directories : [configinc],
dependencies : glib_deps + gst_deps,
)
test(test_name, exe,
env: test_env + ['GST_REGISTRY=@0@/@1@.registry'.format(meson.current_build_dir(), test_name)]
)
endif
endforeach
if have_registry
test('gstcpp', executable('gstcpp', 'gst/gstcpp.cc',
cpp_args : gst_c_args + test_defines,
include_directories : [configinc],
dependencies : glib_deps + gst_deps),
env: test_env + ['GST_REGISTRY=@0@/gstcpp.registry'.format(meson.current_build_dir())])
endif
test('gstlibscpp', executable('gstlibscpp', 'libs/gstlibscpp.cc',
cpp_args : gst_c_args,
include_directories : [configinc],
dependencies : glib_deps + gst_deps),
env: test_env + ['GST_REGISTRY=@0@/gstlibscpp.registry'.format(meson.current_build_dir())])