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 dri_drivers != []
+if _dri_drivers != []
libmesa_dri_drivers = shared_library(
'mesa_dri_drivers',
- dummy_cpp, # see meson #2180
- link_whole : dri_drivers,
+ [],
+ link_whole : _dri_drivers,
link_with : [
- libmegadriver_stub, libdricommon, libxmlconfig, libglapi, libmesa_util,
+ libmegadriver_stub, libdricommon, libglapi,
libmesa_classic,
],
dependencies : [
- dep_selinux, dep_libdrm, dep_expat, dep_m, dep_thread, dep_dl, idep_nir,
+ dep_selinux, dep_libdrm, dep_m, dep_thread, dep_dl,
+ idep_nir, idep_xmlconfig, idep_mesautil,
],
- link_args : ['-Wl,--build-id=sha1', ld_args_bsymbolic, ld_args_gc_sections],
+ 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,
+ _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(),
- variables : ['dridriverdir=${prefix}/' + dri_drivers_path],
- requires_private : ['libdrm >= 2.4.75'], # FIXME: don't hardcode this
+ variables : ['dridriverdir=' + dri_drivers_path],
+ requires_private : dri_req_private,
)
endif