meson: Add support for the vc4 driver.
[mesa.git] / meson.build
index ebaf2d957fd925b024badffdd0ff51e9d9795d7a..f538cf79bb4fce0feb5b558aa741e015c85d6f5a 100644 (file)
@@ -92,11 +92,16 @@ endif
 
 with_gallium = false
 with_gallium_radeonsi = false
+with_gallium_nouveau = false
 with_gallium_softpipe = false
+with_gallium_vc4 = false
 _drivers = get_option('gallium-drivers')
 if _drivers != ''
   _split = _drivers.split(',')
   with_gallium_radeonsi = _split.contains('radeonsi')
+  with_gallium_nouveau = _split.contains('nouveau')
+  with_gallium_softpipe = _split.contains('swrast')
+  with_gallium_vc4 = _split.contains('vc4')
   with_gallium = true
   with_dri = true
 endif
@@ -109,6 +114,10 @@ if not (with_dri or with_gallium)
   with_shared_glapi = false
 endif
 
+if with_dri_swrast and with_gallium_softpipe
+  error('Only one swrast provider can be built')
+endif
+
 dep_libdrm_intel = []
 if with_dri_i915
   dep_libdrm_intel = dependency('libdrm_intel', version : '>= 2.4.75')
@@ -523,10 +532,14 @@ else
   dep_clock = cc.find_library('rt')
 endif
 
+with_gallium_drisw_kms = false
 dep_libdrm = dependency('libdrm', version : '>= 2.4.75',
                         required : with_dri2 or with_dri3)
 if dep_libdrm.found()
   pre_args += '-DHAVE_LIBDRM'
+  if with_dri_platform == 'drm' and with_dri
+    with_gallium_drisw_kms = true
+  endif
 endif
 
 # TODO: some of these may be conditional
@@ -536,8 +549,8 @@ if dep_thread.found() and host_machine.system() == 'linux'
   pre_args += '-DHAVE_PTHREAD'
 endif
 dep_elf = dependency('libelf', required : false)
-if not dep_elf.found()
-  dep_elf = cc.find_library('elf', required : with_amd_vk) # TODO: clover, r600, radeonsi
+if not dep_elf.found() and (with_amd_vk or with_gallium_radeonsi) # TODO: clover, r600
+  dep_elf = cc.find_library('elf')
 endif
 dep_expat = dependency('expat')
 # this only exists on linux so either this is linux and it will be found, or
@@ -546,12 +559,16 @@ dep_m = cc.find_library('m', required : false)
 
 dep_libdrm_amdgpu = []
 dep_libdrm_radeon = []
+dep_libdrm_nouveau = []
 if with_amd_vk or with_gallium_radeonsi
   dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= 2.4.84')
 endif
 if with_gallium_radeonsi # older radeon too
   dep_libdrm_radeon = dependency('libdrm_radeon', version : '>= 2.4.71')
 endif
+if with_gallium_nouveau
+  dep_libdrm_nouveau = dependency('libdrm_nouveau', version : '>= 2.4.66')
+endif
 
 llvm_modules = ['bitwriter', 'engine', 'mcdisassembler', 'mcjit']
 if with_amd_vk
@@ -574,7 +591,9 @@ if with_llvm
       '-DMESA_LLVM_VERSION_PATCH=@0@'.format(_llvm_patch),
     ]
   else
-    if with_amd_vk or with_gallium_radeonsi
+    if with_gallium_softpipe
+      error('Cannot find LLVM to build LLVMPipe. If you wanted softpipe pass -Dllvm=false to meson')
+    elif with_amd_vk or with_gallium_radeonsi # etc
       error('The following drivers requires LLVM: Radv, RadeonSI. One of these is enabled, but LLVM was not found.')
     endif
   endif