From ada781cc8f90ebaf96fae6bf88f12a55c7c58531 Mon Sep 17 00:00:00 2001 From: Chuck Atkins Date: Sun, 29 Nov 2020 08:37:45 -0500 Subject: mesa: Require at least one front-end and back-end to be selected (#20144) --- var/spack/repos/builtin/packages/mesa/package.py | 8 ++++++ var/spack/repos/builtin/packages/mesa18/package.py | 33 ++++++++-------------- 2 files changed, 20 insertions(+), 21 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/mesa/package.py b/var/spack/repos/builtin/packages/mesa/package.py index e2da830f72..e7f2dcc575 100644 --- a/var/spack/repos/builtin/packages/mesa/package.py +++ b/var/spack/repos/builtin/packages/mesa/package.py @@ -72,6 +72,14 @@ class Mesa(MesonPackage): depends_on('xrandr', when='+glx') depends_on('glproto@1.4.14:', when='+glx', type='build') + # Require at least 1 front-end + # TODO: Add egl to this conflict once made available + conflicts('~osmesa ~glx') + + # Require at least 1 back-end + # TODO: Add vulkan to this conflict once made available + conflicts('~opengl ~opengles') + def meson_args(self): spec = self.spec args = [ diff --git a/var/spack/repos/builtin/packages/mesa18/package.py b/var/spack/repos/builtin/packages/mesa18/package.py index 10d4275c6c..1dcead5965 100644 --- a/var/spack/repos/builtin/packages/mesa18/package.py +++ b/var/spack/repos/builtin/packages/mesa18/package.py @@ -52,14 +52,6 @@ class Mesa18(AutotoolsPackage): is_linux = sys.platform.startswith('linux') variant('glx', default=is_linux, description="Enable the GLX frontend.") - # TODO: effectively deal with EGL. The implications of this have not been - # worked through yet - # variant('egl', default=False, description="Enable the EGL frontend.") - - # TODO: Effectively deal with hardware drivers - # The implication of this is enabling DRI, among other things, and - # needing to check which llvm targets were built (ptx or amdgpu, etc.) - # Back ends variant('opengl', default=True, description="Enable full OpenGL support.") variant('opengles', default=False, description="Enable OpenGL ES support.") @@ -67,7 +59,6 @@ class Mesa18(AutotoolsPackage): # Provides provides('gl@4.5', when='+opengl') provides('glx@1.4', when='+glx') - # provides('egl@1.5', when='+egl') provides('osmesa', when='+osmesa') # Variant dependencies @@ -77,6 +68,12 @@ class Mesa18(AutotoolsPackage): depends_on('libxext', when='+glx') depends_on('glproto@1.4.14:', when='+glx', type='build') + # Require at least 1 front-end + conflicts('~osmesa ~glx') + + # Require at least 1 back-end + conflicts('~opengl ~opengles') + # Prevent an unnecessary xcb-dri dependency patch('autotools-x11-nodri.patch') @@ -103,7 +100,11 @@ class Mesa18(AutotoolsPackage): '--disable-xa', '--disable-xvmc', '--disable-osmesa', - '--with-vulkan-drivers='] + '--with-vulkan-drivers=', + '--disable-egl', + '--disable-gbm', + '--disable-dri'] + args_platforms = [] args_gallium_drivers = ['swrast'] args_dri_drivers = [] @@ -120,21 +121,11 @@ class Mesa18(AutotoolsPackage): if '+glx' in spec: num_frontends += 1 - if '+egl' in spec: - args.append('--enable-glx=dri') - else: - args.append('--enable-glx=gallium-xlib') + args.append('--enable-glx=gallium-xlib') args_platforms.append('x11') else: args.append('--disable-glx') - if '+egl' in spec: - num_frontends += 1 - args.extend(['--enable-egl', '--enable-gbm', '--enable-dri']) - args_platforms.append('surfaceless') - else: - args.extend(['--disable-egl', '--disable-gbm', '--disable-dri']) - if '+opengl' in spec: args.append('--enable-opengl') else: -- cgit v1.2.3-70-g09d2