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: ["hardware_google_gfxstream_license"],
20}
21
22python_binary_host {
23    name: "vk_cmd_queue_gen_gfxstream",
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_gfxstream",
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_gfxstream",
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_gfxstream",
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_gfxstream",
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_gfxstream",
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_gfxstream",
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_gfxstream",
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_gfxstream",
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_gfxstream",
138    srcs: [":libmesa_vulkan_xml_gfxstream"],
139    out: ["vk_extensions.h"],
140    tools: ["vk_extensions_gen_gfxstream"],
141    cmd: "python3 $(location vk_extensions_gen_gfxstream) --xml " +
142        "$(location :libmesa_vulkan_xml_gfxstream) --out-h " +
143        "$(location vk_extensions.h)",
144}
145
146genrule {
147    name: "vk_extensions_impl_gfxstream",
148    srcs: [":libmesa_vulkan_xml_gfxstream"],
149    out: ["vk_extensions.c"],
150    tools: ["vk_extensions_gen_gfxstream"],
151    cmd: "python3 $(location vk_extensions_gen_gfxstream) --xml " +
152        "$(location :libmesa_vulkan_xml_gfxstream) --out-c " +
153        "$(location vk_extensions.c)",
154}
155
156genrule {
157    name: "vk_dispatch_table_header_gfxstream",
158    srcs: [":libmesa_vulkan_xml_gfxstream"],
159    out: ["vk_dispatch_table.h"],
160    tools: ["vk_dispatch_table_gen_gfxstream"],
161    cmd: "python3 $(location vk_dispatch_table_gen_gfxstream) --xml " +
162        "$(location :libmesa_vulkan_xml_gfxstream) --out-h " +
163        "$(location vk_dispatch_table.h) --beta false",
164}
165
166genrule {
167    name: "vk_dispatch_table_impl_gfxstream",
168    srcs: [":libmesa_vulkan_xml_gfxstream"],
169    out: ["vk_dispatch_table.c"],
170    tools: ["vk_dispatch_table_gen_gfxstream"],
171    cmd: "python3 $(location vk_dispatch_table_gen_gfxstream) --xml " +
172        "$(location :libmesa_vulkan_xml_gfxstream) --out-c " +
173        "$(location vk_dispatch_table.c) --beta false",
174}
175
176genrule {
177    name: "vk_enum_to_str_header_gfxstream",
178    srcs: [":libmesa_vulkan_xml_gfxstream"],
179    out: [
180        "vk_enum_to_str.h",
181        "vk_enum_defines.h",
182    ],
183    tools: ["gen_enum_to_str_gfxstream"],
184    cmd: "python3 $(location gen_enum_to_str_gfxstream) --xml " +
185        "$(location :libmesa_vulkan_xml_gfxstream) --outdir $(genDir) " +
186        "--beta false",
187}
188
189genrule {
190    name: "vk_enum_to_str_impl_gfxstream",
191    srcs: [":libmesa_vulkan_xml_gfxstream"],
192    out: ["vk_enum_to_str.c"],
193    tools: ["gen_enum_to_str_gfxstream"],
194    cmd: "python3 $(location gen_enum_to_str_gfxstream) --xml " +
195        "$(location :libmesa_vulkan_xml_gfxstream) --outdir $(genDir) " +
196        "--beta false",
197}
198
199genrule {
200    name: "vk_struct_type_cast_header_gfxstream",
201    srcs: [":libmesa_vulkan_xml_gfxstream"],
202    out: ["vk_struct_type_cast.h"],
203    tools: ["vk_struct_type_cast_gen_gfxstream"],
204    cmd: "python3 $(location vk_struct_type_cast_gen_gfxstream) --xml " +
205        "$(location :libmesa_vulkan_xml_gfxstream) --outdir $(genDir) " +
206        "--beta false",
207}
208
209cc_library_static {
210    name: "libmesa_vulkan_util_gfxstream",
211    host_supported: true,
212    vendor: true,
213    defaults: [
214        "mesa_common_defaults_gfxstream",
215    ],
216    header_libs: [
217        "mesa_common_headers_gfxstream",
218    ],
219    shared_libs: [
220        "libcutils",
221    ],
222    static_libs: [
223        "libmesa_util_gfxstream",
224    ],
225    cflags: [
226        "-DVK_NO_NIR",
227    ],
228    generated_headers: [
229        "vk_extensions_header_gfxstream",
230        "vk_dispatch_table_header_gfxstream",
231        "vk_enum_to_str_header_gfxstream",
232        "vk_struct_type_cast_header_gfxstream",
233    ],
234    generated_sources: [
235        "vk_extensions_impl_gfxstream",
236        "vk_dispatch_table_impl_gfxstream",
237        "vk_enum_to_str_impl_gfxstream",
238    ],
239    srcs: [
240        "vk_alloc.c",
241        "vk_format.c",
242        "vk_util.c",
243    ],
244    export_include_dirs: [
245        ".",
246    ],
247    export_generated_headers: [
248        "vk_extensions_header_gfxstream",
249        "vk_dispatch_table_header_gfxstream",
250        "vk_enum_to_str_header_gfxstream",
251        "vk_struct_type_cast_header_gfxstream",
252    ],
253}
254