xref: /aosp_15_r20/external/mesa3d/src/gallium/targets/va/meson.build (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker# Copyright © 2017-2018 Intel Corporation
2*61046927SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT
3*61046927SAndroid Build Coastguard Worker
4*61046927SAndroid Build Coastguard Worker# TODO: support non-static targets
5*61046927SAndroid Build Coastguard Worker# Static targets are always enabled in autotools (unless you modify
6*61046927SAndroid Build Coastguard Worker# configure.ac)
7*61046927SAndroid Build Coastguard Worker
8*61046927SAndroid Build Coastguard Workerva_link_args = []
9*61046927SAndroid Build Coastguard Workerva_link_depends = []
10*61046927SAndroid Build Coastguard Workerva_drivers = []
11*61046927SAndroid Build Coastguard Worker
12*61046927SAndroid Build Coastguard Workerva_sym = configure_file(input : 'va.sym.in', output : 'va.sym', configuration : sym_config)
13*61046927SAndroid Build Coastguard Worker
14*61046927SAndroid Build Coastguard Workerif with_ld_version_script
15*61046927SAndroid Build Coastguard Worker  va_link_args += ['-Wl,--version-script', join_paths(meson.current_build_dir(), 'va.sym')]
16*61046927SAndroid Build Coastguard Worker  va_link_depends += va_sym
17*61046927SAndroid Build Coastguard Workerendif
18*61046927SAndroid Build Coastguard Workerif with_ld_dynamic_list
19*61046927SAndroid Build Coastguard Worker  va_link_args += ['-Wl,--dynamic-list', join_paths(meson.current_source_dir(), '../dri.dyn')]
20*61046927SAndroid Build Coastguard Worker  va_link_depends += files('../dri.dyn')
21*61046927SAndroid Build Coastguard Workerendif
22*61046927SAndroid Build Coastguard Worker
23*61046927SAndroid Build Coastguard Workerlink_with_libva_gallium = [
24*61046927SAndroid Build Coastguard Worker  libgalliumvlwinsys, libgalliumvl, libgallium,
25*61046927SAndroid Build Coastguard Worker  libpipe_loader_static, libws_null, libwsw, libswdri, libswkmsdri,
26*61046927SAndroid Build Coastguard Worker]
27*61046927SAndroid Build Coastguard Worker
28*61046927SAndroid Build Coastguard Workerif with_glx == 'xlib'
29*61046927SAndroid Build Coastguard Worker  link_with_libva_gallium += [libws_xlib]
30*61046927SAndroid Build Coastguard Workerendif
31*61046927SAndroid Build Coastguard Worker
32*61046927SAndroid Build Coastguard Workerdevenv.set('LIBVA_DRIVERS_PATH', meson.current_build_dir())
33*61046927SAndroid Build Coastguard Worker
34*61046927SAndroid Build Coastguard Workerif host_machine.system() == 'windows'
35*61046927SAndroid Build Coastguard Worker  link_with_libva_gallium += [libwsgdi]
36*61046927SAndroid Build Coastguard Worker
37*61046927SAndroid Build Coastguard Worker  libva_init_version = dep_va.version().split('.')
38*61046927SAndroid Build Coastguard Worker  vaon12_def_input = configure_file(
39*61046927SAndroid Build Coastguard Worker    configuration: {
40*61046927SAndroid Build Coastguard Worker      '__vaDriverInit_X_Y': '__vaDriverInit_@0@_@1@'.format(libva_init_version[0], libva_init_version[1]) + '@4'
41*61046927SAndroid Build Coastguard Worker    },
42*61046927SAndroid Build Coastguard Worker    input: 'vaon12.def.in',
43*61046927SAndroid Build Coastguard Worker    output: 'vaon12.def.in',
44*61046927SAndroid Build Coastguard Worker  )
45*61046927SAndroid Build Coastguard Worker
46*61046927SAndroid Build Coastguard Worker  vaon12_def = custom_target(
47*61046927SAndroid Build Coastguard Worker    'vaon12.def',
48*61046927SAndroid Build Coastguard Worker    input: vaon12_def_input,
49*61046927SAndroid Build Coastguard Worker    output : 'vaon12.def',
50*61046927SAndroid Build Coastguard Worker    command : gen_vs_module_defs_normal_command,
51*61046927SAndroid Build Coastguard Worker  )
52*61046927SAndroid Build Coastguard Worker
53*61046927SAndroid Build Coastguard Worker  libva_gallium = shared_library(
54*61046927SAndroid Build Coastguard Worker    'vaon12_drv_video',
55*61046927SAndroid Build Coastguard Worker    'va_target.c',
56*61046927SAndroid Build Coastguard Worker    link_args : [va_link_args, ld_args_gc_sections, ld_args_build_id],
57*61046927SAndroid Build Coastguard Worker    vs_module_defs : vaon12_def,
58*61046927SAndroid Build Coastguard Worker    include_directories : [
59*61046927SAndroid Build Coastguard Worker      inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_util, inc_gallium_winsys, inc_gallium_drivers, inc_gallium_winsys_sw
60*61046927SAndroid Build Coastguard Worker    ],
61*61046927SAndroid Build Coastguard Worker    link_whole : [libva_st],
62*61046927SAndroid Build Coastguard Worker    link_with : link_with_libva_gallium,
63*61046927SAndroid Build Coastguard Worker    dependencies : [driver_d3d12, idep_mesautil],
64*61046927SAndroid Build Coastguard Worker    link_depends : va_link_depends,
65*61046927SAndroid Build Coastguard Worker    install : true,
66*61046927SAndroid Build Coastguard Worker    name_suffix : 'dll',
67*61046927SAndroid Build Coastguard Worker    name_prefix : '',  # otherwise mingw will create libvaon12_drv_video.dll
68*61046927SAndroid Build Coastguard Worker  )
69*61046927SAndroid Build Coastguard Workerelse
70*61046927SAndroid Build Coastguard Worker  libva_gallium = shared_library(
71*61046927SAndroid Build Coastguard Worker    'gallium_drv_video',
72*61046927SAndroid Build Coastguard Worker    'va_target.c',
73*61046927SAndroid Build Coastguard Worker    gnu_symbol_visibility : 'hidden',
74*61046927SAndroid Build Coastguard Worker    link_args : [va_link_args, ld_args_gc_sections, ld_args_build_id],
75*61046927SAndroid Build Coastguard Worker    include_directories : [
76*61046927SAndroid Build Coastguard Worker      inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_util, inc_gallium_winsys, inc_gallium_drivers,
77*61046927SAndroid Build Coastguard Worker    ],
78*61046927SAndroid Build Coastguard Worker    link_whole : [libva_st],
79*61046927SAndroid Build Coastguard Worker    link_with : link_with_libva_gallium,
80*61046927SAndroid Build Coastguard Worker    dependencies : [
81*61046927SAndroid Build Coastguard Worker      dep_libdrm, driver_r600, driver_radeonsi, driver_nouveau, driver_d3d12, driver_virgl,
82*61046927SAndroid Build Coastguard Worker      idep_mesautil,
83*61046927SAndroid Build Coastguard Worker    ],
84*61046927SAndroid Build Coastguard Worker    link_depends : va_link_depends,
85*61046927SAndroid Build Coastguard Worker    install : true,
86*61046927SAndroid Build Coastguard Worker    install_dir : va_drivers_path,
87*61046927SAndroid Build Coastguard Worker    name_suffix : 'so',
88*61046927SAndroid Build Coastguard Worker  )
89*61046927SAndroid Build Coastguard Worker
90*61046927SAndroid Build Coastguard Worker  foreach d : [[with_gallium_r600, 'r600'],
91*61046927SAndroid Build Coastguard Worker              [with_gallium_radeonsi, 'radeonsi'],
92*61046927SAndroid Build Coastguard Worker              [with_gallium_nouveau, 'nouveau'],
93*61046927SAndroid Build Coastguard Worker              [with_gallium_virgl, 'virtio_gpu'],
94*61046927SAndroid Build Coastguard Worker              [with_gallium_d3d12_video, 'd3d12']]
95*61046927SAndroid Build Coastguard Worker    if d[0]
96*61046927SAndroid Build Coastguard Worker      va_drivers += '@0@_drv_video.so'.format(d[1])
97*61046927SAndroid Build Coastguard Worker    endif
98*61046927SAndroid Build Coastguard Worker  endforeach
99*61046927SAndroid Build Coastguard Worker
100*61046927SAndroid Build Coastguard Worker  if va_drivers.length() > 0
101*61046927SAndroid Build Coastguard Worker    meson.add_install_script(
102*61046927SAndroid Build Coastguard Worker      install_megadrivers_py.full_path(),
103*61046927SAndroid Build Coastguard Worker      libva_gallium.full_path(),
104*61046927SAndroid Build Coastguard Worker      va_drivers_path,
105*61046927SAndroid Build Coastguard Worker      va_drivers,
106*61046927SAndroid Build Coastguard Worker      install_tag : 'runtime',
107*61046927SAndroid Build Coastguard Worker    )
108*61046927SAndroid Build Coastguard Worker  endif
109*61046927SAndroid Build Coastguard Workerendif
110