Mesa (master): meson: Re-add auto option for omx

Dylan Baker dbaker at kemper.freedesktop.org
Wed Mar 7 21:31:18 UTC 2018


Module: Mesa
Branch: master
Commit: 34e852d5b50772199797ea839fc8d6b3805633ff
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=34e852d5b50772199797ea839fc8d6b3805633ff

Author: Dylan Baker <dylan at pnwbakers.com>
Date:   Tue Mar  6 10:11:38 2018 -0800

meson: Re-add auto option for omx

This re-adds the auto option for omx, without it we default to tizonia
and the build fails almost immediately, this is especially obnoxious
those building a driver that doesn't support the OMX state tracker to
begin with.

v2: - Only define OMX_FOO for auto cases if the dependencies are found.
      This fixes building tizonia with auto (Julien, Eric)

CC: Gurkirpal Singh <gurkirpal204 at gmail.com>
Fixes: bb5e27fab6087a5c1528a5faf507acce700e883c
       ("st/omx/bellagio: Rename st and target directories")
Signed-off-by: Dylan Baker <dylan.c.baker at intel.com>
Reviewed-by: Jon Turney <jon.turney at dronecode.org.uk> (v1)
Reviewed-by: Eric Engestrom <eric.engestrom at imgtec.com>
Tested-by: Julien Isorce <julien.isorce at gmail.com>
Tested-by: Karol Herbst <kherbst at redhat.com> (v1)

---

 meson.build                                | 69 +++++++++++++++++++-----------
 meson_options.txt                          |  4 +-
 src/gallium/meson.build                    |  2 +-
 src/gallium/state_trackers/omx/meson.build | 18 ++++----
 4 files changed, 57 insertions(+), 36 deletions(-)

diff --git a/meson.build b/meson.build
index 08b9dd4216..8a17d7f240 100644
--- a/meson.build
+++ b/meson.build
@@ -464,42 +464,63 @@ endif
 
 _omx = get_option('gallium-omx')
 if not system_has_kms_drm
-  if _omx != 'disabled'
-    error('OMX state tracker can only be built on unix-like OSes.')
-  else
+  if ['auto', 'disabled'].contains(_omx)
     _omx = 'disabled'
+  else
+    error('OMX state tracker can only be built on unix-like OSes.')
   endif
 elif not (with_platform_x11 or with_platform_drm)
-  if _omx != 'disabled'
-    error('OMX state tracker requires X11 or drm platform support.')
-  else
+  if ['auto', 'disabled'].contains(_omx)
     _omx = 'disabled'
+  else
+    error('OMX state tracker requires X11 or drm platform support.')
   endif
 elif not (with_gallium_r600 or with_gallium_radeonsi or with_gallium_nouveau)
-  if _omx != 'disabled'
-    error('OMX state tracker requires at least one of the following gallium drivers: r600, radeonsi, nouveau.')
-  else
+  if ['auto', 'disabled'].contains(_omx)
     _omx = 'disabled'
+  else
+    error('OMX state tracker requires at least one of the following gallium drivers: r600, radeonsi, nouveau.')
   endif
 endif
-with_gallium_omx = _omx != 'disabled'
-gallium_omx = _omx
+with_gallium_omx = _omx
 dep_omx = []
 dep_omx_other = []
-if gallium_omx == 'bellagio'
-  pre_args += '-DENABLE_ST_OMX_BELLAGIO'
-  dep_omx = dependency('libomxil-bellagio')
-elif gallium_omx == 'tizonia'
-  pre_args += '-DENABLE_ST_OMX_TIZONIA'
-  dep_omx = dependency('libtizonia', version : '>= 0.10.0')
-  dep_omx_other = [
-    dependency('libtizplatform'),
-    dependency('tizilheaders')
-  ]
+if with_gallium_omx == 'bellagio' or with_gallium_omx == 'auto'
+  dep_omx = dependency(
+    'libomxil-bellagio', required : with_gallium_omx == 'bellagio'
+  )
+  if dep_omx.found()
+    pre_args += '-DENABLE_ST_OMX_BELLAGIO'
+    with_gallium_omx = 'bellagio'
+  endif
+endif
+if with_gallium_omx == 'tizonia' or with_gallium_omx == 'auto'
+  if not (with_dri and with_egl)
+    if with_gallium_omx == 'tizonia'
+      error('OMX-Tizonia state tracker requires dri and egl')
+    else
+      with_gallium_omx == 'disabled'
+    endif
+  else
+    dep_omx = dependency(
+      'libtizonia', version : '>= 0.10.0',
+      required : with_gallium_omx == 'tizonia',
+    )
+    dep_omx_other = [
+      dependency('libtizplatform', required : with_gallium_omx == 'tizonia'),
+      dependency('tizilheaders', required : with_gallium_omx == 'tizonia'),
+    ]
+    if dep_omx.found() and dep_omx_other[0].found() and dep_omx_other[1].found()
+      pre_args += '-DENABLE_ST_OMX_TIZONIA'
+      with_gallium_omx = 'tizonia'
+    else
+      with_gallium_omx = 'disabled'
+    endif
+  endif
 endif
 
 omx_drivers_path = get_option('omx-libs-path')
-if with_gallium_omx
+if with_gallium_omx != 'disabled'
   # Figure out where to put the omx driver.
   # FIXME: this could all be vastly simplified by adding a 'defined_variable'
   # argument to meson's get_pkgconfig_variable method.
@@ -1193,8 +1214,8 @@ if with_platform_x11
     dep_xxf86vm = dependency('xxf86vm', required : false)
   endif
   if (with_any_vk or with_glx == 'dri' or
-       (with_gallium_vdpau or with_gallium_xvmc or with_gallium_omx or
-        with_gallium_xa))
+       (with_gallium_vdpau or with_gallium_xvmc or with_gallium_va or
+        with_gallium_omx != 'disabled'))
     dep_xcb = dependency('xcb')
     dep_x11_xcb = dependency('x11-xcb')
   endif
diff --git a/meson_options.txt b/meson_options.txt
index 50ae19685e..a573290b77 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -90,8 +90,8 @@ option(
 option(
   'gallium-omx',
   type : 'combo',
-  value : 'tizonia',
-  choices : ['disabled', 'bellagio', 'tizonia'],
+  value : 'auto',
+  choices : ['auto', 'disabled', 'bellagio', 'tizonia'],
   description : 'enable gallium omx state tracker.',
 )
 option(
diff --git a/src/gallium/meson.build b/src/gallium/meson.build
index d3cbb76d94..108234ad32 100644
--- a/src/gallium/meson.build
+++ b/src/gallium/meson.build
@@ -170,7 +170,7 @@ if with_gallium_xvmc
   subdir('state_trackers/xvmc')
   subdir('targets/xvmc')
 endif
-if with_gallium_omx
+if with_gallium_omx != 'disabled'
   subdir('state_trackers/omx')
   subdir('targets/omx')
 endif
diff --git a/src/gallium/state_trackers/omx/meson.build b/src/gallium/state_trackers/omx/meson.build
index 9470468d75..b0c71a895f 100644
--- a/src/gallium/state_trackers/omx/meson.build
+++ b/src/gallium/state_trackers/omx/meson.build
@@ -28,7 +28,7 @@ files_omx = files(
 	'vid_omx_common.c'
 )
 
-if gallium_omx == 'bellagio'
+if with_gallium_omx == 'bellagio'
 files_omx += files(
   'bellagio/entrypoint.c',
   'bellagio/vid_dec.c',
@@ -37,16 +37,16 @@ files_omx += files(
   'bellagio/vid_dec_h265.c',
   'bellagio/vid_enc.c'
 )
-elif gallium_omx == 'tizonia'
+elif with_gallium_omx == 'tizonia'
 files_omx += files(
   'tizonia/entrypoint.c',
-	'tizonia/h264d.c',
-	'tizonia/h264dprc.c',
-	'tizonia/h264dinport.c',
-	'tizonia/h264e.c',
-	'tizonia/h264eprc.c',
-	'tizonia/h264einport.c',
-	'tizonia/h264eoutport.c'
+        'tizonia/h264d.c',
+        'tizonia/h264dprc.c',
+        'tizonia/h264dinport.c',
+        'tizonia/h264e.c',
+        'tizonia/h264eprc.c',
+        'tizonia/h264einport.c',
+        'tizonia/h264eoutport.c'
 )
 inc_st_omx = [
   inc_st_omx,




More information about the mesa-commit mailing list