# Copyright 2022 Android Open Source Project
# SPDX-License-Identifier: MIT

files_lib_vulkan_gfxstream = files(
  'gfxstream_vk_device.cpp',
  'gfxstream_vk_cmd.cpp',
  'gfxstream_vk_wsi.cpp'
)

gfxstream_vk_wsi_args = []
if with_platform_x11
   gfxstream_vk_wsi_args += '-DGFXSTREAM_VK_X11'
endif

if with_platform_wayland
   gfxstream_vk_wsi_args += '-DGFXSTREAM_VK_WAYLAND'
endif

lib_vulkan_gfxstream = shared_library(
   'vulkan_gfxstream',
   files_lib_vulkan_gfxstream + files_lib_vulkan_enc + gfxstream_vk_entrypoints,
   cpp_args: gfxstream_guest_args + gfxstream_vk_wsi_args,
   include_directories: [inc_vulkan_headers, inc_opengl_headers, inc_android_emu,
                         inc_android_compat, inc_opengl_system, inc_guest_iostream,
                         inc_opengl_codec, inc_render_enc, inc_vulkan_enc, inc_platform,
                         inc_goldfish_address_space, inc_system, inc_include, inc_src,
                         inc_platform, inc_codec_common],
   link_with: [lib_android_compat, lib_emu_android_base, lib_stream,
               libvulkan_wsi, lib_platform],
   link_args: [vulkan_icd_link_args, ld_args_bsymbolic, ld_args_gc_sections],
   link_depends: vulkan_icd_link_depends,
   dependencies: [dependency('libdrm'), idep_vulkan_wsi_headers,
                  idep_vulkan_runtime_headers, idep_vulkan_runtime,
                  idep_vulkan_util_headers, idep_vulkan_wsi, dep_valgrind],
   install: true,
)

gfxstream_icd = custom_target(
  'gfxstream_vk_icd',
  input : [vk_icd_gen, vk_api_xml],
  output : 'gfxstream_vk_icd.@0@.json'.format(host_machine.cpu()),
  command : [
    prog_python, '@INPUT0@',
    '--api-version', '1.1', '--xml', '@INPUT1@',
    '--lib-path', join_paths(get_option('prefix'), get_option('libdir'),
                             'libvulkan_gfxstream.so'),
    '--out', '@OUTPUT@',
  ],
  build_by_default : true,
  install_dir : with_vulkan_icd_dir,
  install : true,
)

_dev_icdname = 'gfxstream_vk_devenv_icd.@0@.json'.format(host_machine.cpu())
_dev_icd = custom_target(
  'gfxstream_vk_devenv_icd',
  input : [vk_icd_gen, vk_api_xml],
  output : _dev_icdname,
  command : [
    prog_python, '@INPUT0@',
    '--api-version', '1.3', '--xml', '@INPUT1@',
    '--lib-path', meson.current_build_dir() / 'libvulkan_gfxstream.so',
    '--out', '@OUTPUT@',
  ],
  build_by_default : true,
)

devenv.append('VK_ICD_FILENAMES', _dev_icd.full_path())
