xref: /aosp_15_r20/external/mesa3d/src/vulkan/util/Android.bp (revision 6104692788411f58d303aa86923a9ff6ecaded22)
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