1# Copyright © 2017 Intel Corporation 2# SPDX-License-Identifier: MIT 3 4# Mesa-local imports in the Python files must be declared here for correct 5# dependency tracking. 6vk_extensions_depend_files = [ 7] 8vk_entrypoints_depend_files = [ 9 files('vk_extensions.py'), 10 vk_extensions_depend_files, 11] 12vk_extensions_gen_depend_files = [ 13 files('vk_extensions.py'), 14 vk_extensions_depend_files, 15] 16vk_dispatch_table_gen_depend_files = [ 17 files('vk_entrypoints.py'), 18 vk_entrypoints_depend_files, 19] 20vk_dispatch_trampolines_gen_depend_files = [ 21 files('vk_entrypoints.py'), 22 vk_entrypoints_depend_files, 23] 24vk_entrypoints_gen_depend_files = [ 25 files('vk_entrypoints.py'), 26 vk_entrypoints_depend_files, 27] 28vk_cmd_queue_gen_depend_files = [ 29 files('vk_entrypoints.py'), 30 vk_entrypoints_depend_files, 31] 32vk_physical_device_features_gen_depend_files = [ 33 files('vk_extensions.py'), 34 vk_extensions_depend_files, 35] 36vk_physical_device_properties_gen_depend_files = [ 37 files('vk_extensions.py'), 38 vk_extensions_depend_files, 39] 40vk_physical_device_spirv_caps_gen_depend_files = [ 41 files('vk_extensions.py'), 42 vk_extensions_depend_files, 43 files('vk_physical_device_features_gen.py'), 44 vk_physical_device_features_gen_depend_files, 45] 46vk_synchronization_helpers_gen_depend_files = [ 47 files('vk_extensions.py'), 48 vk_extensions_depend_files, 49] 50vk_enum_to_str_depend_files = [ 51 files('vk_extensions.py'), 52 vk_extensions_depend_files, 53] 54vk_struct_type_cast_depend_files = [ 55 files('vk_extensions.py'), 56 vk_extensions_depend_files, 57] 58 59vk_entrypoints_gen = files('vk_entrypoints_gen.py') 60vk_extensions_gen = files('vk_extensions_gen.py') 61vk_icd_gen = files('vk_icd_gen.py') 62vk_cmd_queue_gen = files('vk_cmd_queue_gen.py') 63vk_dispatch_trampolines_gen = files('vk_dispatch_trampolines_gen.py') 64vk_physical_device_features_gen = files('vk_physical_device_features_gen.py') 65vk_physical_device_properties_gen = files('vk_physical_device_properties_gen.py') 66vk_physical_device_spirv_caps_gen = files('vk_physical_device_spirv_caps_gen.py') 67vk_synchronization_helpers_gen = files('vk_synchronization_helpers_gen.py') 68 69files_vulkan_util = files( 70 'vk_alloc.c', 71 'vk_format.c', 72 'vk_util.c', 73) 74 75vk_dispatch_table = custom_target( 76 'vk_dispatch_table', 77 input : ['vk_dispatch_table_gen.py', vk_api_xml], 78 output : ['vk_dispatch_table.c', 'vk_dispatch_table.h'], 79 command : [ 80 prog_python, '@INPUT0@', '--xml', '@INPUT1@', 81 '--out-c', '@OUTPUT0@', '--out-h', '@OUTPUT1@', 82 '--beta', with_vulkan_beta.to_string() 83 ], 84 depend_files : vk_dispatch_table_gen_depend_files, 85) 86 87vk_enum_to_str = custom_target( 88 'vk_enum_to_str', 89 input : ['gen_enum_to_str.py', vk_api_xml], 90 output : ['vk_enum_to_str.c', 'vk_enum_to_str.h', 'vk_enum_defines.h'], 91 command : [ 92 prog_python, '@INPUT0@', '--xml', '@INPUT1@', 93 '--outdir', meson.current_build_dir(), 94 '--beta', with_vulkan_beta.to_string() 95 ], 96 depend_files : vk_enum_to_str_depend_files, 97) 98 99vk_struct_type_cast = custom_target( 100 'vk_struct_type_cast', 101 input : ['vk_struct_type_cast_gen.py', vk_api_xml], 102 output : ['vk_struct_type_cast.h'], 103 command : [ 104 prog_python, '@INPUT0@', '--xml', '@INPUT1@', 105 '--outdir', meson.current_build_dir(), 106 '--beta', with_vulkan_beta.to_string() 107 ], 108 depend_files : vk_struct_type_cast_depend_files, 109) 110 111vk_extensions = custom_target( 112 'vk_extensions', 113 input : ['vk_extensions_gen.py', vk_api_xml], 114 output : ['vk_extensions.c', 'vk_extensions.h'], 115 command : [ 116 prog_python, '@INPUT0@', '--xml', '@INPUT1@', 117 '--out-c', '@OUTPUT0@', '--out-h', '@OUTPUT1@' 118 ], 119 depend_files : vk_extensions_gen_depend_files, 120) 121 122libvulkan_util = static_library( 123 'vulkan_util', 124 [files_vulkan_util, vk_dispatch_table, vk_enum_to_str, 125 vk_struct_type_cast, vk_extensions], 126 include_directories : [inc_include, inc_src], 127 dependencies : [vulkan_wsi_deps, idep_mesautil, idep_nir_headers], 128 c_args : [c_msvc_compat_args], 129 gnu_symbol_visibility : 'hidden', 130 build_by_default : false, 131) 132 133idep_vulkan_util_headers = declare_dependency( 134 sources : [vk_dispatch_table[1], vk_enum_to_str[1], 135 vk_struct_type_cast[0], vk_extensions[1]], 136 include_directories : include_directories('.') 137) 138 139idep_vulkan_util = declare_dependency( 140 link_with : libvulkan_util, 141 dependencies : [idep_vulkan_util_headers, idep_mesautil], 142) 143