build: meson: build examples
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Fri, 2 Nov 2018 15:50:47 +0000 (16:50 +0100)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Mon, 5 Nov 2018 12:46:17 +0000 (13:46 +0100)
meson.build
meson_options.txt
tests/elements/meson.build [new file with mode: 0644]
tests/meson.build [new file with mode: 0644]

index 9af8960..f948bb9 100644 (file)
@@ -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")')
index 018f8bc..f2b50f8 100644 (file)
@@ -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 (file)
index 0000000..9fb57f6
--- /dev/null
@@ -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 (file)
index 0000000..b7f7c88
--- /dev/null
@@ -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')