mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-16 05:16:36 +00:00
b2f9808722
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.
159 lines
5.1 KiB
Meson
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())])
|