tegra: Initial support
[mesa.git] / src / gallium / meson.build
index 4aa108262047dbd741e970a2555be9d0da9fa906..c9bfc0b729819fe809d0ebb521d32adf1e053263 100644 (file)
@@ -29,70 +29,132 @@ subdir('drivers/noop')
 subdir('drivers/trace')
 subdir('drivers/rbug')
 subdir('winsys/sw/null')
-subdir('winsys/sw/dri')
-subdir('winsys/sw/kms-dri')
+if with_dri
+  subdir('winsys/sw/dri')
+else
+  libswdri = []
+endif
+if with_gallium_drisw_kms
+  subdir('winsys/sw/kms-dri')
+else
+  libswkmsdri = []
+endif
 subdir('winsys/sw/wrapper')
+if with_platform_haiku
+  subdir('winsys/sw/hgl')
+endif
+if with_gallium_swr
+  if meson.version().version_compare('< 0.44.0')
+    error('SWR requires meson 0.44.0 or greater.')
+  endif
+  subdir('drivers/swr')
+else
+  driver_swr = declare_dependency()
+endif
 if with_gallium_softpipe
   subdir('drivers/softpipe')
   if with_llvm
     subdir('drivers/llvmpipe')
   endif
+else
+  driver_swrast = declare_dependency()
 endif
 if with_gallium_r300 or with_gallium_radeonsi or with_gallium_r600
   subdir('winsys/radeon/drm')
 endif
 if with_gallium_r300
   subdir('drivers/r300')
+else
+  driver_r300 = declare_dependency()
 endif
 if with_gallium_r600
   subdir('drivers/r600')
+else
+  driver_r600 = declare_dependency()
 endif
 if with_gallium_radeonsi
   subdir('winsys/amdgpu/drm')
   subdir('drivers/radeon')
   subdir('drivers/radeonsi')
+else
+  driver_radeonsi = declare_dependency()
 endif
 if with_gallium_nouveau
   subdir('winsys/nouveau/drm')
   subdir('drivers/nouveau')
+else
+  driver_nouveau = declare_dependency()
 endif
 if with_gallium_freedreno
   subdir('winsys/freedreno/drm')
   subdir('drivers/freedreno')
-endif
-if with_gallium_pl111
-  subdir('winsys/pl111/drm')
+else
+  driver_freedreno = declare_dependency()
 endif
 if with_gallium_vc4
   subdir('winsys/vc4/drm')
   subdir('drivers/vc4')
+else
+  driver_vc4 = declare_dependency()
+endif
+if with_gallium_pl111
+  subdir('winsys/pl111/drm')
+else
+  driver_pl111 = declare_dependency()
 endif
 if with_gallium_vc5
   subdir('winsys/vc5/drm')
   subdir('drivers/vc5')
+else
+  driver_vc5 = declare_dependency()
 endif
 if with_gallium_etnaviv
   subdir('winsys/etnaviv/drm')
   subdir('drivers/etnaviv')
+else
+  driver_etnaviv = declare_dependency()
 endif
 if with_gallium_imx
   subdir('winsys/imx/drm')
+else
+  driver_imx = declare_dependency()
+endif
+if with_gallium_tegra
+  subdir('winsys/tegra/drm')
+  subdir('drivers/tegra')
+else
+  driver_tegra = declare_dependency()
 endif
 if with_gallium_i915
   subdir('winsys/i915/drm')
   subdir('drivers/i915')
+else
+  driver_i915 = declare_dependency()
 endif
 if with_gallium_svga
   subdir('winsys/svga/drm')
   subdir('drivers/svga')
+else
+  driver_svga = declare_dependency()
 endif
 if with_gallium_virgl
   subdir('winsys/virgl/drm')
   subdir('winsys/virgl/vtest')
   subdir('drivers/virgl')
+else
+  driver_virgl = declare_dependency()
+endif
+if with_gallium_opencl
+  # TODO: this isn't really clover specific, but ATM clover is the only
+  # consumer
+  subdir('targets/pipe-loader')
+
+  if meson.version().version_compare('< 0.44.0')
+    error('OpenCL requires meson 0.44.0 or greater.')
+  endif
+  subdir('state_trackers/clover')
+  subdir('targets/opencl')
 endif
-# TODO: SWR
-# TODO: clover
 if with_dri
   subdir('state_trackers/dri')
   subdir('targets/dri')
@@ -106,10 +168,32 @@ if with_glx == 'gallium-xlib'
   subdir('state_trackers/glx/xlib')
   subdir('targets/libgl-xlib')
 endif
-# TODO: OMX
-# TODO: VA
-# TODO: vdpau
-# TODO: xa
-# TODO: xvmc
-# TODO: nine
+if with_gallium_vdpau
+  subdir('state_trackers/vdpau')
+  subdir('targets/vdpau')
+endif
+if with_gallium_xvmc
+  subdir('state_trackers/xvmc')
+  subdir('targets/xvmc')
+endif
+if with_gallium_omx != 'disabled'
+  subdir('state_trackers/omx')
+  subdir('targets/omx')
+endif
+if with_gallium_va
+  subdir('state_trackers/va')
+  subdir('targets/va')
+endif
+if with_gallium_xa
+  subdir('state_trackers/xa')
+  subdir('targets/xa')
+endif
+if with_platform_haiku
+  subdir('state_trackers/hgl')
+  subdir('targets/haiku-softpipe')
+endif
+if with_gallium_st_nine
+  subdir('state_trackers/nine')
+  subdir('targets/d3dadapter9')
+endif
 # TODO: tests