meson: Add support for the vc4 driver.
[mesa.git] / meson.build
index e2f49415295ae0ef6015f292281b475489bcfb41..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')
@@ -540,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
@@ -550,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
@@ -578,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