1bf215546Sopenharmony_ci# Copyright 2019 Google LLC 2bf215546Sopenharmony_ci# SPDX-License-Identifier: MIT 3bf215546Sopenharmony_ci# 4bf215546Sopenharmony_ci# based in part on anv and radv which are: 5bf215546Sopenharmony_ci# Copyright © 2017 Intel Corporation 6bf215546Sopenharmony_ci 7bf215546Sopenharmony_civn_entrypoints = custom_target( 8bf215546Sopenharmony_ci 'vn_entrypoints', 9bf215546Sopenharmony_ci input : [vk_entrypoints_gen, vk_api_xml], 10bf215546Sopenharmony_ci output : ['vn_entrypoints.h', 'vn_entrypoints.c'], 11bf215546Sopenharmony_ci command : [ 12bf215546Sopenharmony_ci prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak', 13bf215546Sopenharmony_ci '--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'vn', 14bf215546Sopenharmony_ci ], 15bf215546Sopenharmony_ci) 16bf215546Sopenharmony_ci 17bf215546Sopenharmony_civirtio_icd = custom_target( 18bf215546Sopenharmony_ci 'virtio_icd', 19bf215546Sopenharmony_ci input : [vk_icd_gen, vk_api_xml], 20bf215546Sopenharmony_ci output : 'virtio_icd.@0@.json'.format(host_machine.cpu()), 21bf215546Sopenharmony_ci command : [ 22bf215546Sopenharmony_ci prog_python, '@INPUT0@', 23bf215546Sopenharmony_ci '--api-version', '1.2', '--xml', '@INPUT1@', 24bf215546Sopenharmony_ci '--lib-path', join_paths(get_option('prefix'), get_option('libdir'), 25bf215546Sopenharmony_ci 'libvulkan_virtio.so'), 26bf215546Sopenharmony_ci '--out', '@OUTPUT@', 27bf215546Sopenharmony_ci ], 28bf215546Sopenharmony_ci build_by_default : true, 29bf215546Sopenharmony_ci install_dir : with_vulkan_icd_dir, 30bf215546Sopenharmony_ci install : true, 31bf215546Sopenharmony_ci) 32bf215546Sopenharmony_ci 33bf215546Sopenharmony_ciif meson.version().version_compare('>= 0.58') 34bf215546Sopenharmony_ci _dev_icdname = 'virtio_devenv_icd.@0@.json'.format(host_machine.cpu()) 35bf215546Sopenharmony_ci custom_target( 36bf215546Sopenharmony_ci 'virtio_devenv_icd', 37bf215546Sopenharmony_ci input : [vk_icd_gen, vk_api_xml], 38bf215546Sopenharmony_ci output : _dev_icdname, 39bf215546Sopenharmony_ci command : [ 40bf215546Sopenharmony_ci prog_python, '@INPUT0@', 41bf215546Sopenharmony_ci '--api-version', '1.2', '--xml', '@INPUT1@', 42bf215546Sopenharmony_ci '--lib-path', meson.current_build_dir() / 'libvulkan_virtio.so', 43bf215546Sopenharmony_ci '--out', '@OUTPUT@', 44bf215546Sopenharmony_ci ], 45bf215546Sopenharmony_ci build_by_default : true, 46bf215546Sopenharmony_ci ) 47bf215546Sopenharmony_ci 48bf215546Sopenharmony_ci devenv.append('VK_ICD_FILENAMES', meson.current_build_dir() / _dev_icdname) 49bf215546Sopenharmony_ciendif 50bf215546Sopenharmony_ci 51bf215546Sopenharmony_cilibvn_files = files( 52bf215546Sopenharmony_ci 'vn_buffer.c', 53bf215546Sopenharmony_ci 'vn_command_buffer.c', 54bf215546Sopenharmony_ci 'vn_common.c', 55bf215546Sopenharmony_ci 'vn_cs.c', 56bf215546Sopenharmony_ci 'vn_descriptor_set.c', 57bf215546Sopenharmony_ci 'vn_device.c', 58bf215546Sopenharmony_ci 'vn_device_memory.c', 59bf215546Sopenharmony_ci 'vn_feedback.c', 60bf215546Sopenharmony_ci 'vn_icd.c', 61bf215546Sopenharmony_ci 'vn_image.c', 62bf215546Sopenharmony_ci 'vn_instance.c', 63bf215546Sopenharmony_ci 'vn_physical_device.c', 64bf215546Sopenharmony_ci 'vn_pipeline.c', 65bf215546Sopenharmony_ci 'vn_query_pool.c', 66bf215546Sopenharmony_ci 'vn_queue.c', 67bf215546Sopenharmony_ci 'vn_render_pass.c', 68bf215546Sopenharmony_ci 'vn_ring.c', 69bf215546Sopenharmony_ci 'vn_renderer_internal.c', 70bf215546Sopenharmony_ci 'vn_renderer_util.c', 71bf215546Sopenharmony_ci 'vn_renderer_virtgpu.c', 72bf215546Sopenharmony_ci 'vn_renderer_vtest.c', 73bf215546Sopenharmony_ci) 74bf215546Sopenharmony_ci 75bf215546Sopenharmony_civn_deps = [ 76bf215546Sopenharmony_ci dep_libdrm, 77bf215546Sopenharmony_ci dep_thread, 78bf215546Sopenharmony_ci idep_mesautil, 79bf215546Sopenharmony_ci idep_vulkan_util, 80bf215546Sopenharmony_ci idep_vulkan_runtime, 81bf215546Sopenharmony_ci idep_vulkan_wsi, 82bf215546Sopenharmony_ci idep_xmlconfig, 83bf215546Sopenharmony_ci] 84bf215546Sopenharmony_ci 85bf215546Sopenharmony_civn_flags = [ 86bf215546Sopenharmony_ci no_override_init_args, 87bf215546Sopenharmony_ci] 88bf215546Sopenharmony_ci 89bf215546Sopenharmony_civn_libs = [] 90bf215546Sopenharmony_ci 91bf215546Sopenharmony_ciif with_platform_wayland or with_platform_x11 92bf215546Sopenharmony_ci libvn_files += files('vn_wsi.c') 93bf215546Sopenharmony_ci libvn_files += wsi_entrypoints[0] 94bf215546Sopenharmony_ci vn_flags += '-DVN_USE_WSI_PLATFORM' 95bf215546Sopenharmony_ciendif 96bf215546Sopenharmony_ci 97bf215546Sopenharmony_ciif with_platform_wayland 98bf215546Sopenharmony_ci vn_deps += dep_wayland_client 99bf215546Sopenharmony_ciendif 100bf215546Sopenharmony_ci 101bf215546Sopenharmony_ciif with_platform_x11 102bf215546Sopenharmony_ci vn_deps += dep_xcb_dri3 103bf215546Sopenharmony_ciendif 104bf215546Sopenharmony_ci 105bf215546Sopenharmony_ciif with_platform_android 106bf215546Sopenharmony_ci libvn_files += files('vn_android.c') 107bf215546Sopenharmony_ci vn_deps += dep_android 108bf215546Sopenharmony_ciendif 109bf215546Sopenharmony_ci 110bf215546Sopenharmony_cilibvulkan_virtio = shared_library( 111bf215546Sopenharmony_ci 'vulkan_virtio', 112bf215546Sopenharmony_ci [libvn_files, vn_entrypoints, sha1_h], 113bf215546Sopenharmony_ci include_directories : [ 114bf215546Sopenharmony_ci inc_include, inc_src, inc_virtio, 115bf215546Sopenharmony_ci ], 116bf215546Sopenharmony_ci link_with : vn_libs, 117bf215546Sopenharmony_ci dependencies : [vn_deps], 118bf215546Sopenharmony_ci c_args : [vn_flags], 119bf215546Sopenharmony_ci link_args : [ld_args_bsymbolic, ld_args_gc_sections], 120bf215546Sopenharmony_ci gnu_symbol_visibility : 'hidden', 121bf215546Sopenharmony_ci install : true, 122bf215546Sopenharmony_ci) 123