xref: /aosp_15_r20/external/mesa3d/src/gallium/targets/lavapipe/meson.build (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker
2*61046927SAndroid Build Coastguard Worker
3*61046927SAndroid Build Coastguard Workerlibvulkan_lvp = shared_library(
4*61046927SAndroid Build Coastguard Worker  'vulkan_lvp',
5*61046927SAndroid Build Coastguard Worker  [ 'lavapipe_target.c' ],
6*61046927SAndroid Build Coastguard Worker  vs_module_defs : vulkan_api_def,
7*61046927SAndroid Build Coastguard Worker  include_directories : [ inc_src, inc_util, inc_include, inc_gallium, inc_gallium_aux, inc_gallium_winsys, inc_gallium_drivers ],
8*61046927SAndroid Build Coastguard Worker  link_whole : [ liblavapipe_st ],
9*61046927SAndroid Build Coastguard Worker  link_with : [libpipe_loader_static, libgallium, libwsw, libswdri, libws_null, libswkmsdri ],
10*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
11*61046927SAndroid Build Coastguard Worker  link_args : [ld_args_bsymbolic, ld_args_gc_sections],
12*61046927SAndroid Build Coastguard Worker  # On Apple systems, "weak" is actually "weak_import", which is slightly different.
13*61046927SAndroid Build Coastguard Worker  # The linker still expects a definition for weak symbols at build time, just not at runtime.
14*61046927SAndroid Build Coastguard Worker  # We have to forcibly ignore undefined symbols, which unfortunately applies to all symbols.
15*61046927SAndroid Build Coastguard Worker  override_options : ['b_lundef=@0@'.format(host_machine.system() == 'darwin' ? 'false' : get_option('b_lundef').to_string())],
16*61046927SAndroid Build Coastguard Worker  dependencies : [driver_llvmpipe, idep_mesautil],
17*61046927SAndroid Build Coastguard Worker  name_prefix : host_machine.system() == 'windows' ? '' : [],
18*61046927SAndroid Build Coastguard Worker  install : true,
19*61046927SAndroid Build Coastguard Worker)
20*61046927SAndroid Build Coastguard Worker
21*61046927SAndroid Build Coastguard Workerif host_machine.system() == 'windows'
22*61046927SAndroid Build Coastguard Worker  icd_lib_path = import('fs').relative_to(get_option('bindir'), with_vulkan_icd_dir)
23*61046927SAndroid Build Coastguard Worker  icd_file_name = 'vulkan_lvp.dll'
24*61046927SAndroid Build Coastguard Workerelse
25*61046927SAndroid Build Coastguard Worker  icd_lib_path = join_paths(get_option('prefix'), get_option('libdir'))
26*61046927SAndroid Build Coastguard Worker  icd_file_name = 'libvulkan_lvp.@0@'.format(host_machine.system() == 'darwin' ? 'dylib' : 'so')
27*61046927SAndroid Build Coastguard Workerendif
28*61046927SAndroid Build Coastguard Worker
29*61046927SAndroid Build Coastguard Workericd_command = [
30*61046927SAndroid Build Coastguard Worker  prog_python, '@INPUT0@',
31*61046927SAndroid Build Coastguard Worker  '--api-version', '1.3', '--xml', '@INPUT1@',
32*61046927SAndroid Build Coastguard Worker  '--lib-path', join_paths(icd_lib_path, icd_file_name),
33*61046927SAndroid Build Coastguard Worker  '--out', '@OUTPUT@',
34*61046927SAndroid Build Coastguard Worker]
35*61046927SAndroid Build Coastguard Workerif host_machine.system() == 'windows'
36*61046927SAndroid Build Coastguard Worker  icd_command += '--use-backslash'
37*61046927SAndroid Build Coastguard Workerendif
38*61046927SAndroid Build Coastguard Worker
39*61046927SAndroid Build Coastguard Workerlvp_icd = custom_target(
40*61046927SAndroid Build Coastguard Worker  'lvp_icd',
41*61046927SAndroid Build Coastguard Worker  input : [vk_icd_gen, vk_api_xml],
42*61046927SAndroid Build Coastguard Worker  output : 'lvp_icd.@[email protected]'.format(host_machine.cpu()),
43*61046927SAndroid Build Coastguard Worker  command : icd_command,
44*61046927SAndroid Build Coastguard Worker  build_by_default : true,
45*61046927SAndroid Build Coastguard Worker  install_dir : with_vulkan_icd_dir,
46*61046927SAndroid Build Coastguard Worker  install_tag : 'runtime',
47*61046927SAndroid Build Coastguard Worker  install : true,
48*61046927SAndroid Build Coastguard Worker)
49*61046927SAndroid Build Coastguard Worker
50*61046927SAndroid Build Coastguard Worker_dev_icdname = 'lvp_devenv_icd.@[email protected]'.format(host_machine.cpu())
51*61046927SAndroid Build Coastguard Worker_dev_icd = custom_target(
52*61046927SAndroid Build Coastguard Worker  'lvp_devenv_icd',
53*61046927SAndroid Build Coastguard Worker  input : [vk_icd_gen, vk_api_xml],
54*61046927SAndroid Build Coastguard Worker  output : _dev_icdname,
55*61046927SAndroid Build Coastguard Worker  command : [
56*61046927SAndroid Build Coastguard Worker    prog_python, '@INPUT0@',
57*61046927SAndroid Build Coastguard Worker    '--api-version', '1.1', '--xml', '@INPUT1@',
58*61046927SAndroid Build Coastguard Worker    '--lib-path', meson.current_build_dir() / icd_file_name,
59*61046927SAndroid Build Coastguard Worker    '--out', '@OUTPUT@',
60*61046927SAndroid Build Coastguard Worker  ],
61*61046927SAndroid Build Coastguard Worker  build_by_default : true,
62*61046927SAndroid Build Coastguard Worker)
63*61046927SAndroid Build Coastguard Worker
64*61046927SAndroid Build Coastguard Workerdevenv.append('VK_DRIVER_FILES', _dev_icd.full_path())
65*61046927SAndroid Build Coastguard Worker# Deprecated: replaced by VK_DRIVER_FILES above
66*61046927SAndroid Build Coastguard Workerdevenv.append('VK_ICD_FILENAMES', _dev_icd.full_path())
67