docs/release-calendar: update - 17.3.0-rc2 is out
[mesa.git] / meson.build
index 875f9d4d294d1911f239f88c02342cdd9a5f2583..8988deae7838d5d5d68150ae12a63cf7d0bff95d 100644 (file)
@@ -46,6 +46,7 @@ with_valgrind = get_option('valgrind')
 with_libunwind = get_option('libunwind')
 with_asm = get_option('asm')
 with_llvm = get_option('llvm')
+with_osmesa = get_option('osmesa')
 if get_option('texture-float')
   pre_args += '-DTEXTURE_FLOAT_ENABLED'
   message('WARNING: Floating-point texture enabled. Please consult docs/patents.txt and your lawyer before building mesa.')
@@ -67,9 +68,6 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2
 # Only build shared_glapi if at least one OpenGL API is enabled
 with_shared_glapi = get_option('shared-glapi') and with_any_opengl
 
-# TODO: these will need options, but at the moment they just control header
-# installs
-with_osmesa = false
 
 # shared-glapi is required if at least two OpenGL APIs are being built
 if not with_shared_glapi
@@ -713,7 +711,25 @@ endif
 
 # TODO: glx provider
 
-# TODO: osmesa provider
+if with_osmesa != 'none'
+  if with_osmesa == 'classic' and not with_dri_swrast
+    error('OSMesa classic requires dri (classic) swrast.')
+  endif
+  if with_osmesa == 'gallium' and not with_gallium_softpipe
+    error('OSMesa gallium requires gallium softpipe or llvmpipe.')
+  endif
+  osmesa_lib_name = 'OSMesa'
+  osmesa_bits = get_option('osmesa-bits')
+  if osmesa_bits != '8'
+    if with_dri or with_glx != 'disabled'
+      error('OSMesa bits must be 8 if building glx or dir based drivers')
+    endif
+    osmesa_lib_name = osmesa_lib_name + osmesa_bits
+    pre_args += [
+      '-DCHAN_BITS=@0@'.format(osmesa_bits), '-DDEFAULT_SOFTWARE_DEPTH_BITS=31'
+    ]
+  endif
+endif
 
 # TODO: symbol mangling
 
@@ -740,12 +756,13 @@ dep_xext = []
 dep_xdamage = []
 dep_xfixes = []
 dep_x11_xcb = []
+dep_xcb = []
 dep_xcb_glx = []
 dep_xcb_dri2 = []
 dep_xcb_dri3 = []
 dep_dri2proto = []
 dep_glproto = []
-dep_xf86vm = []
+dep_xxf86vm = []
 dep_xcb_dri3 = []
 dep_xcb_present = []
 dep_xcb_sync = []
@@ -758,7 +775,7 @@ if with_platform_x11
     dep_xdamage = dependency('xdamage', version : '>= 1.1')
     dep_xfixes = dependency('xfixes')
     dep_xcb_glx = dependency('xcb-glx', version : '>= 1.8.1')
-    dep_xf86vm = dependency('xxf86vm', required : false)
+    dep_xxf86vm = dependency('xxf86vm', required : false)
   endif
   if with_any_vk or (with_glx == 'dri' and with_dri_platform == 'drm')
     dep_xcb = dependency('xcb')
@@ -822,8 +839,8 @@ gl_priv_reqs = [
   'x11', 'xext', 'xdamage >= 1.1', 'xfixes', 'x11-xcb', 'xcb',
   'xcb-glx >= 1.8.1', 'libdrm >= 2.4.75',
 ]
-if dep_xf86vm != [] and dep_xf86vm.found()
-  gl_priv_reqs += 'xf86vm'
+if dep_xxf86vm != [] and dep_xxf86vm.found()
+  gl_priv_reqs += 'xxf86vm'
 endif
 if with_dri_platform == 'drm'
   gl_priv_reqs += 'xcb-dri2 >= 1.8'