summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2018-11-02 16:50:47 +0100
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2018-11-05 13:46:17 +0100
commit254eb9507f5e3c51552bfdf6c4b97650e847d55a (patch)
tree02a3e2fb7d05211023620b09bcc340d5fe57bfa8
parent5171a3d5b1b3ebe7a26c8b835edeb922186f374a (diff)
downloadgstreamer-vaapi-254eb9507f5e3c51552bfdf6c4b97650e847d55a.tar.gz
build: meson: build examples
-rw-r--r--meson.build7
-rw-r--r--meson_options.txt4
-rw-r--r--tests/elements/meson.build24
-rw-r--r--tests/meson.build75
4 files changed, 109 insertions, 1 deletions
diff --git a/meson.build b/meson.build
index 9af89604..f948bb9c 100644
--- a/meson.build
+++ b/meson.build
@@ -68,6 +68,9 @@ x11_dep = dependency('x11', required: false)
xrandr_dep = dependency('xrandr', required: false)
xrender_dep = dependency('xrender', required: false)
+# some of the examples can use GTK+-3
+gtk_dep = dependency('gtk+-3.0', version : '>= 3.10', required : get_option('examples'))
+
GLES_VERSION_MASK = gl_dep.found() ? 1 : 0
if glesv2_dep.found()
if (cc.has_header('GLES2/gl2.h', dependencies: glesv2_dep) and
@@ -182,7 +185,9 @@ libsinc = include_directories('gst-libs')
subdir('gst-libs')
subdir('gst')
-#subdir('tests')
+if not get_option('examples').disabled()
+ subdir('tests')
+endif
python3 = import('python3').find_python()
run_command(python3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")')
diff --git a/meson_options.txt b/meson_options.txt
index 018f8bc3..f2b50f86 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -4,3 +4,7 @@ option('with_x11', type : 'combo', choices : ['yes', 'no', 'auto'], value : 'aut
option('with_glx', type : 'combo', choices : ['yes', 'no', 'auto'], value : 'auto')
option('with_wayland', type : 'combo', choices : ['yes', 'no', 'auto'], value : 'auto')
option('with_egl', type : 'combo', choices : ['yes', 'no', 'auto'], value : 'auto')
+
+# Common feature options
+option('examples', type : 'feature', value : 'auto', yield : true)
+option('gtk_doc', type : 'feature', value : 'auto', yield : true, description : 'Build API documentation with gtk-doc')
diff --git a/tests/elements/meson.build b/tests/elements/meson.build
new file mode 100644
index 00000000..9fb57f67
--- /dev/null
+++ b/tests/elements/meson.build
@@ -0,0 +1,24 @@
+examples = [
+ 'test-vaapisink',
+ 'test-vaapipostproc',
+ 'test-roi',
+]
+
+foreach example : examples
+ executable(example, '@0@.c'.format(example),
+ c_args : gstreamer_vaapi_args,
+ include_directories: [configinc, libsinc],
+ dependencies : [gst_dep, gstvideo_dep],
+ install: false)
+endforeach
+
+executable('test-vaapicontext', 'test-vaapicontext.c',
+ c_args : gstreamer_vaapi_args,
+ include_directories: [configinc, libsinc],
+ dependencies : [ gst_dep,
+ gstvideo_dep,
+ libva_dep,
+ x11_dep,
+ gtk_dep,
+ libva_x11_dep ],
+ install: false)
diff --git a/tests/meson.build b/tests/meson.build
new file mode 100644
index 00000000..b7f7c881
--- /dev/null
+++ b/tests/meson.build
@@ -0,0 +1,75 @@
+libdecutils_sources = [
+ 'decoder.c',
+ 'test-h264.c',
+ 'test-jpeg.c',
+ 'test-mpeg2.c',
+ 'test-mpeg4.c',
+ 'test-vc1.c',
+]
+
+libdecutils_headers = [
+ 'decoder.h',
+ 'test-h264.h',
+ 'test-jpeg.h',
+ 'test-mpeg2.h',
+ 'test-mpeg4.h',
+ 'test-vc1.h',
+]
+
+libutils_sources = [
+ 'codec.c',
+ 'image.c',
+ 'output.c',
+ 'test-subpicture-data.c',
+ 'y4mreader.c',
+]
+
+libutils_headers = [
+ 'codec.h',
+ 'image.h',
+ 'output.h',
+ 'test-subpicture-data.h',
+ 'y4mreader.h',
+]
+
+test_examples = [
+ 'simple-decoder',
+ 'test-decode',
+ 'test-display',
+ 'test-filter',
+ 'test-surfaces',
+ 'test-windows',
+ 'test-subpicture',
+]
+
+if USE_ENCODERS
+ test_examples += [ 'simple-encoder' ]
+endif
+if USE_GLX
+ test_examples += [ 'test-textures' ]
+endif
+
+libutils = static_library('libutils',
+ libutils_sources + libutils_headers,
+ c_args : gstreamer_vaapi_args,
+ include_directories: [configinc, libsinc],
+ dependencies : gstlibvaapi_deps,
+ install: false)
+
+libdecutils = static_library('libdecutils',
+ libdecutils_sources + libdecutils_headers,
+ c_args : gstreamer_vaapi_args,
+ include_directories: [configinc, libsinc],
+ dependencies : gstlibvaapi_deps,
+ install: false)
+
+foreach example : test_examples
+ executable(example, '@0@.c'.format(example),
+ c_args : gstreamer_vaapi_args,
+ include_directories: [configinc, libsinc],
+ dependencies : [gst_dep, libva_dep, gstlibvaapi_dep],
+ link_with: [libutils, libdecutils],
+ install: false)
+endforeach
+
+subdir('elements')