subdir('common')
-dri_drivers = []
-dri_link = []
+_dri_drivers = []
+_dri_link = []
+if with_dri_swrast
+ subdir('swrast')
+ _dri_drivers += libswrast_dri
+ _dri_link += 'swrast_dri.so'
+endif
+if with_dri_i915
+ subdir('i915')
+ _dri_drivers += libi915
+ _dri_link += 'i915_dri.so'
+endif
if with_dri_i965
subdir('i965')
+ _dri_drivers += libi965
+ _dri_link += 'i965_dri.so'
+endif
+if with_dri_r100
+ subdir('radeon')
+ _dri_drivers += libr100
+ _dri_link += 'radeon_dri.so'
+endif
+if with_dri_r200
+ subdir('r200')
+ _dri_drivers += libr200
+ _dri_link += 'r200_dri.so'
+endif
+if with_dri_nouveau
+ subdir('nouveau')
+ _dri_drivers += libnouveau_vieux
+ _dri_link += 'nouveau_vieux_dri.so'
endif
-if with_dri
+if _dri_drivers != []
libmesa_dri_drivers = shared_library(
'mesa_dri_drivers',
- dummy_cpp, # see meson #2180
- link_whole : dri_drivers,
- link_with : [libmegadriver_stub, libdricommon, libxmlconfig, libglapi,
- libmesa_util, libnir, libmesa_classic],
- dependencies : [dep_selinux, dep_libdrm, dep_expat, dep_m, dep_thread,
- dep_dl],
- link_args : [ld_args_bsymbolic, ld_args_gc_sections],
+ [],
+ link_whole : _dri_drivers,
+ link_with : [
+ libmegadriver_stub, libdricommon, libglapi,
+ libmesa_classic,
+ ],
+ dependencies : [
+ dep_selinux, dep_libdrm, dep_m, dep_thread, dep_dl,
+ idep_nir, idep_xmlconfig, idep_mesautil,
+ ],
+ link_args : [ld_args_build_id, ld_args_bsymbolic, ld_args_gc_sections],
+ # Will be deleted during installation, see install_megadrivers.py
+ install : true,
+ install_dir : dri_drivers_path,
+ name_suffix : 'so',
)
+ meson.add_install_script(
+ prog_python.path(),
+ join_paths(meson.source_root(), 'bin/install_megadrivers.py'),
+ libmesa_dri_drivers.full_path(),
+ dri_drivers_path,
+ _dri_link,
+ )
+endif
+
+# This needs to be installed if any dri drivers (including gallium dri drivers)
+# are built.
+if with_dri
+ dri_req_private = []
+ if dep_libdrm.found()
+ dri_req_private = ['libdrm >= ' + dep_libdrm.version()]
+ endif
+
pkg.generate(
name : 'dri',
filebase : 'dri',
description : 'Direct Rendering Infrastructure',
version : meson.project_version(),
- requires_private : ['libdrm >= 2.4.75'], # FIXME: don't hardcode this
- )
-
- meson.add_install_script(
- join_paths(meson.source_root(), 'bin/install_megadrivers.py'),
- libmesa_dri_drivers.full_path(),
- dri_drivers_path,
- dri_link,
+ variables : ['dridriverdir=' + dri_drivers_path],
+ requires_private : dri_req_private,
)
endif