101e04c3fSmrg# Copyright © 2017 Intel Corporation
201e04c3fSmrg
301e04c3fSmrg# Permission is hereby granted, free of charge, to any person obtaining a copy
401e04c3fSmrg# of this software and associated documentation files (the "Software"), to deal
501e04c3fSmrg# in the Software without restriction, including without limitation the rights
601e04c3fSmrg# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
701e04c3fSmrg# copies of the Software, and to permit persons to whom the Software is
801e04c3fSmrg# furnished to do so, subject to the following conditions:
901e04c3fSmrg
1001e04c3fSmrg# The above copyright notice and this permission notice shall be included in
1101e04c3fSmrg# all copies or substantial portions of the Software.
1201e04c3fSmrg
1301e04c3fSmrg# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1401e04c3fSmrg# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1501e04c3fSmrg# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1601e04c3fSmrg# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1701e04c3fSmrg# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1801e04c3fSmrg# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1901e04c3fSmrg# SOFTWARE.
2001e04c3fSmrg
2101e04c3fSmrgsubdir('common')
2201e04c3fSmrg
23a8bb7a65Smaya_dri_drivers = []
24a8bb7a65Smaya_dri_link = []
2501e04c3fSmrgif with_dri_i915
2601e04c3fSmrg  subdir('i915')
27a8bb7a65Smaya  _dri_drivers += libi915
287ec681f3Smrg  _dri_link += 'i830_dri.so'
29a8bb7a65Smaya  _dri_link += 'i915_dri.so'
3001e04c3fSmrgendif
3101e04c3fSmrgif with_dri_i965
3201e04c3fSmrg  subdir('i965')
33a8bb7a65Smaya  _dri_drivers += libi965
34a8bb7a65Smaya  _dri_link += 'i965_dri.so'
3501e04c3fSmrgendif
3601e04c3fSmrgif with_dri_r100
3701e04c3fSmrg  subdir('radeon')
38a8bb7a65Smaya  _dri_drivers += libr100
39a8bb7a65Smaya  _dri_link += 'radeon_dri.so'
4001e04c3fSmrgendif
4101e04c3fSmrgif with_dri_r200
4201e04c3fSmrg  subdir('r200')
43a8bb7a65Smaya  _dri_drivers += libr200
44a8bb7a65Smaya  _dri_link += 'r200_dri.so'
4501e04c3fSmrgendif
4601e04c3fSmrgif with_dri_nouveau
4701e04c3fSmrg  subdir('nouveau')
48a8bb7a65Smaya  _dri_drivers += libnouveau_vieux
49a8bb7a65Smaya  _dri_link += 'nouveau_vieux_dri.so'
5001e04c3fSmrgendif
5101e04c3fSmrg
52a8bb7a65Smayaif _dri_drivers != []
5301e04c3fSmrg  libmesa_dri_drivers = shared_library(
5401e04c3fSmrg    'mesa_dri_drivers',
5501e04c3fSmrg    [],
56a8bb7a65Smaya    link_whole : _dri_drivers,
5701e04c3fSmrg    link_with : [
587ec681f3Smrg      libmegadriver_stub, libdricommon, libglapi,
5901e04c3fSmrg      libmesa_classic,
6001e04c3fSmrg    ],
6101e04c3fSmrg    dependencies : [
627ec681f3Smrg      dep_selinux, dep_libdrm, dep_m, dep_thread, dep_dl,
637ec681f3Smrg      idep_nir, idep_xmlconfig, idep_mesautil,
6401e04c3fSmrg    ],
6501e04c3fSmrg    link_args : [ld_args_build_id, ld_args_bsymbolic, ld_args_gc_sections],
66993e1d59Smrg    # Will be deleted during installation, see install_megadrivers.py
67993e1d59Smrg    install : true,
68993e1d59Smrg    install_dir : dri_drivers_path,
69a8bb7a65Smaya    name_suffix : 'so',
7001e04c3fSmrg  )
7101e04c3fSmrg
7201e04c3fSmrg  meson.add_install_script(
737ec681f3Smrg    install_megadrivers_py.path(),
7401e04c3fSmrg    libmesa_dri_drivers.full_path(),
7501e04c3fSmrg    dri_drivers_path,
76a8bb7a65Smaya    _dri_link,
7701e04c3fSmrg  )
7801e04c3fSmrgendif
7901e04c3fSmrg
8001e04c3fSmrg# This needs to be installed if any dri drivers (including gallium dri drivers)
8101e04c3fSmrg# are built.
8201e04c3fSmrgif with_dri
8301e04c3fSmrg  dri_req_private = []
8401e04c3fSmrg  if dep_libdrm.found()
857ec681f3Smrg    dri_req_private = ['libdrm >= ' + _drm_ver]
8601e04c3fSmrg  endif
8701e04c3fSmrg
8801e04c3fSmrg  pkg.generate(
8901e04c3fSmrg    name : 'dri',
9001e04c3fSmrg    filebase : 'dri',
9101e04c3fSmrg    description : 'Direct Rendering Infrastructure',
9201e04c3fSmrg    version : meson.project_version(),
93993e1d59Smrg    variables : ['dridriverdir=' + dri_drivers_path],
9401e04c3fSmrg    requires_private : dri_req_private,
9501e04c3fSmrg  )
9601e04c3fSmrgendif
97