1/* 2 * Copyright (C) 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package { 18 // See: http://go/android-license-faq 19 default_applicable_licenses: ["external_mesa3d_license"], 20} 21 22python_binary_host { 23 name: "vk_cmd_queue_gen", 24 main: "vk_cmd_queue_gen.py", 25 srcs: [ 26 "vk_cmd_queue_gen.py", 27 "vk_entrypoints.py", 28 "vk_extensions.py", 29 ], 30 libs: [ 31 "mako", 32 ], 33} 34 35python_binary_host { 36 name: "vk_entrypoints_gen", 37 main: "vk_entrypoints_gen.py", 38 srcs: [ 39 "vk_entrypoints_gen.py", 40 "vk_entrypoints.py", 41 "vk_extensions.py", 42 ], 43 libs: [ 44 "mako", 45 ], 46} 47 48python_binary_host { 49 name: "vk_dispatch_trampolines_gen", 50 main: "vk_dispatch_trampolines_gen.py", 51 srcs: [ 52 "vk_dispatch_trampolines_gen.py", 53 "vk_entrypoints.py", 54 "vk_extensions.py", 55 ], 56 libs: [ 57 "mako", 58 ], 59} 60 61python_binary_host { 62 name: "vk_physical_device_features_gen", 63 main: "vk_physical_device_features_gen.py", 64 srcs: [ 65 "vk_physical_device_features_gen.py", 66 "vk_entrypoints.py", 67 "vk_extensions.py", 68 ], 69 libs: [ 70 "mako", 71 ], 72} 73 74python_binary_host { 75 name: "vk_physical_device_properties_gen", 76 main: "vk_physical_device_properties_gen.py", 77 srcs: [ 78 "vk_physical_device_properties_gen.py", 79 "vk_entrypoints.py", 80 "vk_extensions.py", 81 ], 82 libs: [ 83 "mako", 84 ], 85} 86 87python_binary_host { 88 name: "vk_extensions_gen", 89 main: "vk_extensions_gen.py", 90 srcs: [ 91 "vk_extensions_gen.py", 92 "vk_extensions.py", 93 ], 94 libs: [ 95 "mako", 96 ], 97} 98 99python_binary_host { 100 name: "vk_dispatch_table_gen", 101 main: "vk_dispatch_table_gen.py", 102 srcs: [ 103 "vk_dispatch_table_gen.py", 104 "vk_entrypoints.py", 105 "vk_extensions.py", 106 ], 107 libs: [ 108 "mako", 109 ], 110} 111 112python_binary_host { 113 name: "gen_enum_to_str", 114 main: "gen_enum_to_str.py", 115 srcs: [ 116 "gen_enum_to_str.py", 117 "vk_extensions.py", 118 ], 119 libs: [ 120 "mako", 121 ], 122} 123 124python_binary_host { 125 name: "vk_struct_type_cast_gen", 126 main: "vk_struct_type_cast_gen.py", 127 srcs: [ 128 "vk_struct_type_cast_gen.py", 129 "vk_extensions.py", 130 ], 131 libs: [ 132 "mako", 133 ], 134} 135 136genrule { 137 name: "vk_extensions_header", 138 srcs: [":mesa_vulkan_xml"], 139 out: ["vk_extensions.h"], 140 tools: ["vk_extensions_gen"], 141 cmd: "python3 $(location vk_extensions_gen) --xml " + 142 "$(location :mesa_vulkan_xml) --out-h " + 143 "$(location vk_extensions.h)", 144} 145 146genrule { 147 name: "vk_extensions_impl", 148 srcs: [":mesa_vulkan_xml"], 149 out: ["vk_extensions.c"], 150 tools: ["vk_extensions_gen"], 151 cmd: "python3 $(location vk_extensions_gen) --xml " + 152 "$(location :mesa_vulkan_xml) --out-c " + 153 "$(location vk_extensions.c)", 154} 155 156genrule { 157 name: "vk_dispatch_table_header", 158 srcs: [":mesa_vulkan_xml"], 159 out: ["vk_dispatch_table.h"], 160 tools: ["vk_dispatch_table_gen"], 161 cmd: "python3 $(location vk_dispatch_table_gen) --xml " + 162 "$(location :mesa_vulkan_xml) --out-h " + 163 "$(location vk_dispatch_table.h) --beta false", 164} 165 166genrule { 167 name: "vk_dispatch_table_impl", 168 srcs: [":mesa_vulkan_xml"], 169 out: ["vk_dispatch_table.c"], 170 tools: ["vk_dispatch_table_gen"], 171 cmd: "python3 $(location vk_dispatch_table_gen) --xml " + 172 "$(location :mesa_vulkan_xml) --out-c " + 173 "$(location vk_dispatch_table.c) --beta false", 174} 175 176genrule { 177 name: "vk_enum_to_str_header", 178 srcs: [":mesa_vulkan_xml"], 179 out: [ 180 "vk_enum_to_str.h", 181 "vk_enum_defines.h", 182 ], 183 tools: ["gen_enum_to_str"], 184 cmd: "python3 $(location gen_enum_to_str) --xml " + 185 "$(location :mesa_vulkan_xml) --outdir $(genDir) " + 186 "--beta false", 187} 188 189genrule { 190 name: "vk_enum_to_str_impl", 191 srcs: [":mesa_vulkan_xml"], 192 out: ["vk_enum_to_str.c"], 193 tools: ["gen_enum_to_str"], 194 cmd: "python3 $(location gen_enum_to_str) --xml " + 195 "$(location :mesa_vulkan_xml) --outdir $(genDir) " + 196 "--beta false", 197} 198 199genrule { 200 name: "vk_struct_type_cast_header", 201 srcs: [":mesa_vulkan_xml"], 202 out: ["vk_struct_type_cast.h"], 203 tools: ["vk_struct_type_cast_gen"], 204 cmd: "python3 $(location vk_struct_type_cast_gen) --xml " + 205 "$(location :mesa_vulkan_xml) --outdir $(genDir) " + 206 "--beta false", 207} 208 209cc_library_static { 210 name: "mesa_vulkan_util", 211 vendor: true, 212 host_supported: true, 213 defaults: [ 214 "mesa_common_defaults", 215 ], 216 header_libs: [ 217 "mesa_common_headers", 218 ], 219 shared_libs: [ 220 "libcutils", 221 ], 222 static_libs: [ 223 "mesa_util", 224 ], 225 generated_headers: [ 226 "vk_extensions_header", 227 "vk_dispatch_table_header", 228 "vk_enum_to_str_header", 229 "vk_struct_type_cast_header", 230 "nir_builder_opcodes_header", 231 "nir_intrinsics_header", 232 "nir_intrinsics_indices_header", 233 "nir_opcodes_header", 234 "u_format_gen_header", 235 "builtin_types_header", 236 ], 237 generated_sources: [ 238 "vk_extensions_impl", 239 "vk_dispatch_table_impl", 240 "vk_enum_to_str_impl", 241 ], 242 srcs: [ 243 "vk_alloc.c", 244 "vk_format.c", 245 "vk_util.c", 246 ], 247 export_include_dirs: [ 248 ".", 249 ], 250 export_generated_headers: [ 251 "vk_extensions_header", 252 "vk_dispatch_table_header", 253 "vk_enum_to_str_header", 254 "vk_struct_type_cast_header", 255 ], 256} 257