8f9a08f5294d429e031e641d5b0d0f63c132698c
[mesa.git] / src / mapi / glapi / gen / meson.build
1 # Copyright © 2017 Intel Corporation
2
3 # Permission is hereby granted, free of charge, to any person obtaining a copy
4 # of this software and associated documentation files (the "Software"), to deal
5 # in the Software without restriction, including without limitation the rights
6 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 # copies of the Software, and to permit persons to whom the Software is
8 # furnished to do so, subject to the following conditions:
9
10 # The above copyright notice and this permission notice shall be included in
11 # all copies or substantial portions of the Software.
12
13 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 # SOFTWARE.
20
21 glapi_gen_gl_xml = files('../registry/gl.xml')
22 glapi_gen_mapi_deps = [
23 glapi_gen_gl_xml,
24 genCommon_py,
25 glapi_gen_gl_xml,
26 ]
27
28 gl_and_es_api_files = files('gl_and_es_API.xml')
29
30 api_xml_files = files(
31 'gl_API.xml',
32 'es_EXT.xml',
33 'gl_and_es_API.xml',
34 'gl_and_glX_API.xml',
35 'ARB_base_instance.xml',
36 'ARB_blend_func_extended.xml',
37 'ARB_bindless_texture.xml',
38 'ARB_clear_buffer_object.xml',
39 'ARB_clear_texture.xml',
40 'ARB_clip_control.xml',
41 'ARB_color_buffer_float.xml',
42 'ARB_compressed_texture_pixel_storage.xml',
43 'ARB_compute_shader.xml',
44 'ARB_compute_variable_group_size.xml',
45 'ARB_copy_buffer.xml',
46 'ARB_copy_image.xml',
47 'ARB_debug_output.xml',
48 'ARB_depth_buffer_float.xml',
49 'ARB_depth_clamp.xml',
50 'ARB_direct_state_access.xml',
51 'ARB_draw_buffers.xml',
52 'ARB_draw_buffers_blend.xml',
53 'ARB_draw_elements_base_vertex.xml',
54 'ARB_draw_indirect.xml',
55 'ARB_draw_instanced.xml',
56 'ARB_ES2_compatibility.xml',
57 'ARB_ES3_compatibility.xml',
58 'ARB_framebuffer_no_attachments.xml',
59 'ARB_framebuffer_object.xml',
60 'ARB_get_program_binary.xml',
61 'ARB_get_texture_sub_image.xml',
62 'ARB_gl_spirv.xml',
63 'ARB_gpu_shader_fp64.xml',
64 'ARB_gpu_shader_int64.xml',
65 'ARB_gpu_shader5.xml',
66 'ARB_indirect_parameters.xml',
67 'ARB_instanced_arrays.xml',
68 'ARB_internalformat_query.xml',
69 'ARB_internalformat_query2.xml',
70 'ARB_invalidate_subdata.xml',
71 'ARB_map_buffer_range.xml',
72 'ARB_multi_bind.xml',
73 'ARB_pipeline_statistics_query.xml',
74 'ARB_program_interface_query.xml',
75 'ARB_robustness.xml',
76 'ARB_sample_shading.xml',
77 'ARB_sampler_objects.xml',
78 'ARB_seamless_cube_map.xml',
79 'ARB_separate_shader_objects.xml',
80 'ARB_shader_atomic_counters.xml',
81 'ARB_shader_image_load_store.xml',
82 'ARB_shader_subroutine.xml',
83 'ARB_shader_storage_buffer_object.xml',
84 'ARB_sparse_buffer.xml',
85 'ARB_spirv_extensions.xml',
86 'ARB_sync.xml',
87 'ARB_tessellation_shader.xml',
88 'ARB_texture_barrier.xml',
89 'ARB_texture_buffer_object.xml',
90 'ARB_texture_buffer_range.xml',
91 'ARB_texture_compression_rgtc.xml',
92 'ARB_texture_cube_map_array.xml',
93 'ARB_texture_float.xml',
94 'ARB_texture_gather.xml',
95 'ARB_texture_multisample.xml',
96 'ARB_texture_rgb10_a2ui.xml',
97 'ARB_texture_rg.xml',
98 'ARB_texture_storage_multisample.xml',
99 'ARB_texture_storage.xml',
100 'ARB_texture_view.xml',
101 'ARB_uniform_buffer_object.xml',
102 'ARB_vertex_array_object.xml',
103 'ARB_vertex_attrib_64bit.xml',
104 'ARB_vertex_attrib_binding.xml',
105 'ARB_viewport_array.xml',
106 'AMD_depth_clamp_separate.xml',
107 'AMD_draw_buffers_blend.xml',
108 'AMD_gpu_shader_int64.xml',
109 'AMD_performance_monitor.xml',
110 'ARB_vertex_type_2_10_10_10_rev.xml',
111 'APPLE_object_purgeable.xml',
112 'APPLE_vertex_array_object.xml',
113 'EXT_direct_state_access.xml',
114 'EXT_draw_buffers2.xml',
115 'EXT_external_objects.xml',
116 'EXT_external_objects_fd.xml',
117 'EXT_framebuffer_object.xml',
118 'EXT_gpu_shader4.xml',
119 'EXT_multisampled_render_to_texture.xml',
120 'EXT_packed_depth_stencil.xml',
121 'EXT_provoking_vertex.xml',
122 'EXT_separate_shader_objects.xml',
123 'EXT_shader_image_load_store.xml',
124 'EXT_texture_array.xml',
125 'EXT_texture_integer.xml',
126 'EXT_transform_feedback.xml',
127 'EXT_vertex_attrib_64bit.xml',
128 'EXT_window_rectangles.xml',
129 'GREMEDY_string_marker.xml',
130 'INTEL_performance_query.xml',
131 'KHR_debug.xml',
132 'KHR_context_flush_control.xml',
133 'KHR_robustness.xml',
134 'KHR_robustness_es.xml',
135 'KHR_texture_compression_astc.xml',
136 'NV_copy_image.xml',
137 'NV_conditional_render.xml',
138 'NV_primitive_restart.xml',
139 'NV_texture_barrier.xml',
140 'NV_vdpau_interop.xml',
141 'NV_viewport_swizzle.xml',
142 'OES_EGL_image.xml',
143 'OES_fixed_point.xml',
144 'OES_single_precision.xml',
145 'OES_texture_compression_astc.xml',
146 'GL3x.xml',
147 'GL4x.xml',
148 )
149
150 glapi_gen_depends = files(
151 'gl_XML.py',
152 'glX_XML.py',
153 'license.py',
154 'static_data.py',
155 'typeexpr.py',
156 ) + api_xml_files
157
158 glx_gen_depends = files(
159 'glX_API.xml',
160 'glX_XML.py',
161 'glX_proto_common.py',
162 ) + api_xml_files
163
164 glapi_mapi_tmp_h = custom_target(
165 'glapi_mapi_tmp.h',
166 input : [mapi_abi_py, 'gl_and_es_API.xml'],
167 output : 'glapi_mapi_tmp.h',
168 command : [prog_python, '@INPUT0@', '--printer', 'glapi', '@INPUT1@'],
169 depend_files : glapi_gen_depends,
170 capture : true,
171 )
172
173 glprocs_h = custom_target(
174 'glprocs.h',
175 input : ['gl_procs.py', 'gl_and_es_API.xml'],
176 output : 'glprocs.h',
177 command : [prog_python, '@INPUT0@', '-c', '-f', '@INPUT1@'],
178 depend_files : glapi_gen_depends,
179 capture : true,
180 )
181
182 glapitemp_h = custom_target(
183 'glapitemp.h',
184 input : ['gl_apitemp.py', 'gl_and_es_API.xml'],
185 output : 'glapitemp.h',
186 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'],
187 depend_files : glapi_gen_depends,
188 capture : true,
189 )
190
191 glapitable_h = custom_target(
192 'glapitable.h',
193 input : ['gl_table.py', 'gl_and_es_API.xml'],
194 output : 'glapitable.h',
195 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'],
196 depend_files : glapi_gen_depends,
197 capture : true,
198 )
199
200 glapi_gentable_c = custom_target(
201 'glapi_gentable.c',
202 input : ['gl_gentable.py', 'gl_and_es_API.xml'],
203 output : 'glapi_gentable.c',
204 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'],
205 depend_files : glapi_gen_depends,
206 capture : true,
207 )
208
209 main_enums_c = custom_target(
210 'enums.c',
211 input : ['gl_enums.py', files('../registry/gl.xml')],
212 output : 'enums.c',
213 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'],
214 capture : true,
215 )
216
217 main_api_exec_c = custom_target(
218 'api_exec.c',
219 input : ['gl_genexec.py', 'gl_and_es_API.xml'],
220 output : 'api_exec.c',
221 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'],
222 depend_files : files('apiexec.py') + glapi_gen_depends,
223 capture : true,
224 )
225
226 main_marshal_generated_c = []
227 foreach x : ['0', '1', '2', '3', '4', '5', '6', '7']
228 main_marshal_generated_c += custom_target(
229 'marshal_generated' + x + '.c',
230 input : ['gl_marshal.py', 'gl_and_es_API.xml'],
231 output : 'marshal_generated' + x + '.c',
232 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@', '-i', x, '-n', '8'],
233 depend_files : files('marshal_XML.py') + glapi_gen_depends,
234 capture : true,
235 )
236 endforeach
237
238 glx_generated = []
239
240 foreach x : [['indirect.c', 'proto'], ['indirect.h', 'init_h'], ['indirect_init.c', 'init_c']]
241 glx_generated += custom_target(
242 x[0],
243 input : ['glX_proto_send.py', 'gl_API.xml'],
244 output : x[0],
245 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@', '-m', x[1]],
246 depend_files : glx_gen_depends,
247 capture : true,
248 )
249 endforeach
250
251 foreach x : [['indirect_size.h', ['-m', 'size_h', '--header-tag', '_INDIRECT_SIZE_H_']],
252 ['indirect_size.c', ['-m', 'size_c']]]
253 glx_generated += custom_target(
254 x[0],
255 input : ['glX_proto_size.py', 'gl_API.xml'],
256 output : x[0],
257 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@', '--only-set', x[1]],
258 depend_files : glx_gen_depends,
259 capture : true,
260 )
261 endforeach
262 glx_indirect_size_h = glx_generated[3]
263
264 glapi_x86_s = custom_target(
265 'glapi_x86.S',
266 input : ['gl_x86_asm.py', gl_and_es_api_files],
267 output : 'glapi_x86.S',
268 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'],
269 depend_files : glapi_gen_depends,
270 capture : true,
271 )
272
273 glapi_x86_64_s = custom_target(
274 'glapi_x86-64.S',
275 input : ['gl_x86-64_asm.py', gl_and_es_api_files],
276 output : 'glapi_x86-64.S',
277 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'],
278 depend_files : glapi_gen_depends,
279 capture : true,
280 )
281
282 glapi_sparc_s = custom_target(
283 'glapi_sparc.S',
284 input : ['gl_SPARC_asm.py', gl_and_es_api_files],
285 output : 'glapi_sparc.S',
286 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'],
287 depend_files : glapi_gen_depends,
288 capture : true,
289 )