meson.build revision b8e80941
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
21subdir('program')
22subdir('main')
23
24# files shared between classic mesa and gallium mesa
25files_libmesa_common = files(
26  'program/arbprogparse.c',
27  'program/arbprogparse.h',
28  'program/ir_to_mesa.cpp',
29  'program/ir_to_mesa.h',
30  'program/prog_cache.c',
31  'program/prog_cache.h',
32  'program/prog_execute.c',
33  'program/prog_execute.h',
34  'program/prog_instruction.c',
35  'program/prog_instruction.h',
36  'program/prog_noise.c',
37  'program/prog_noise.h',
38  'program/prog_opt_constant_fold.c',
39  'program/prog_optimize.c',
40  'program/prog_optimize.h',
41  'program/prog_parameter.c',
42  'program/prog_parameter.h',
43  'program/prog_parameter_layout.c',
44  'program/prog_parameter_layout.h',
45  'program/prog_print.c',
46  'program/prog_print.h',
47  'program/program.c',
48  'program/program.h',
49  'program/programopt.c',
50  'program/programopt.h',
51  'program/program_parse_extra.c',
52  'program/program_parser.h',
53  'program/prog_statevars.c',
54  'program/prog_statevars.h',
55  'program/symbol_table.c',
56  'program/symbol_table.h',
57  'program/prog_to_nir.c',
58  'program/prog_to_nir.h',
59  'main/accum.c',
60  'main/accum.h',
61  'main/api_arrayelt.c',
62  'main/api_arrayelt.h',
63  'main/api_exec.h',
64  'main/api_loopback.c',
65  'main/api_loopback.h',
66  'main/arbprogram.c',
67  'main/arbprogram.h',
68  'main/arrayobj.c',
69  'main/arrayobj.h',
70  'main/atifragshader.c',
71  'main/atifragshader.h',
72  'main/attrib.c',
73  'main/attrib.h',
74  'main/barrier.c',
75  'main/barrier.h',
76  'main/bbox.c',
77  'main/bbox.h',
78  'main/blend.c',
79  'main/blend.h',
80  'main/blit.c',
81  'main/blit.h',
82  'main/bufferobj.c',
83  'main/bufferobj.h',
84  'main/buffers.c',
85  'main/buffers.h',
86  'main/clear.c',
87  'main/clear.h',
88  'main/clip.c',
89  'main/clip.h',
90  'main/colormac.h',
91  'main/colortab.c',
92  'main/colortab.h',
93  'main/compute.c',
94  'main/compute.h',
95  'main/compiler.h',
96  'main/condrender.c',
97  'main/condrender.h',
98  'main/config.h',
99  'main/conservativeraster.c',
100  'main/conservativeraster.h',
101  'main/context.c',
102  'main/context.h',
103  'main/convolve.c',
104  'main/convolve.h',
105  'main/copyimage.c',
106  'main/copyimage.h',
107  'main/cpuinfo.c',
108  'main/cpuinfo.h',
109  'main/dd.h',
110  'main/debug.c',
111  'main/debug.h',
112  'main/debug_output.c',
113  'main/debug_output.h',
114  'main/depth.c',
115  'main/depth.h',
116  'main/dlist.c',
117  'main/dlist.h',
118  'main/draw.c',
119  'main/draw.h',
120  'main/drawpix.c',
121  'main/drawpix.h',
122  'main/drawtex.c',
123  'main/drawtex.h',
124  'main/draw_validate.c',
125  'main/draw_validate.h',
126  'main/enable.c',
127  'main/enable.h',
128  'main/enums.h',
129  'main/errors.c',
130  'main/errors.h',
131  'main/eval.c',
132  'main/eval.h',
133  'main/execmem.c',
134  'main/extensions.c',
135  'main/extensions.h',
136  'main/extensions_table.c',
137  'main/extensions_table.h',
138  'main/externalobjects.c',
139  'main/externalobjects.h',
140  'main/fbobject.c',
141  'main/fbobject.h',
142  'main/feedback.c',
143  'main/feedback.h',
144  'main/ff_fragment_shader.cpp',
145  'main/ffvertex_prog.c',
146  'main/ffvertex_prog.h',
147  'main/fog.c',
148  'main/fog.h',
149  'main/format_pack.h',
150  'main/format_unpack.h',
151  'main/formatquery.c',
152  'main/formatquery.h',
153  'main/formats.c',
154  'main/formats.h',
155  'main/format_utils.c',
156  'main/format_utils.h',
157  'main/framebuffer.c',
158  'main/framebuffer.h',
159  'main/get.c',
160  'main/get.h',
161  'main/genmipmap.c',
162  'main/genmipmap.h',
163  'main/getstring.c',
164  'main/glformats.c',
165  'main/glformats.h',
166  'main/glspirv.c',
167  'main/glspirv.h',
168  'main/glthread.c',
169  'main/glthread.h',
170  'main/glheader.h',
171  'main/hash.c',
172  'main/hash.h',
173  'main/hint.c',
174  'main/hint.h',
175  'main/histogram.c',
176  'main/histogram.h',
177  'main/image.c',
178  'main/image.h',
179  'main/imports.c',
180  'main/imports.h',
181  'main/light.c',
182  'main/light.h',
183  'main/lines.c',
184  'main/lines.h',
185  'main/macros.h',
186  'main/marshal.c',
187  'main/marshal.h',
188  'main/matrix.c',
189  'main/matrix.h',
190  'main/mipmap.c',
191  'main/mipmap.h',
192  'main/mm.c',
193  'main/mm.h',
194  'main/menums.h',
195  'main/mtypes.h',
196  'main/multisample.c',
197  'main/multisample.h',
198  'main/objectlabel.c',
199  'main/objectlabel.h',
200  'main/objectpurge.c',
201  'main/objectpurge.h',
202  'main/pack.c',
203  'main/pack.h',
204  'main/pbo.c',
205  'main/pbo.h',
206  'main/performance_monitor.c',
207  'main/performance_monitor.h',
208  'main/performance_query.c',
209  'main/performance_query.h',
210  'main/pipelineobj.c',
211  'main/pipelineobj.h',
212  'main/pixel.c',
213  'main/pixel.h',
214  'main/pixelstore.c',
215  'main/pixelstore.h',
216  'main/pixeltransfer.c',
217  'main/pixeltransfer.h',
218  'main/points.c',
219  'main/points.h',
220  'main/polygon.c',
221  'main/polygon.h',
222  'main/program_binary.c',
223  'main/program_binary.h',
224  'main/program_resource.c',
225  'main/program_resource.h',
226  'main/querymatrix.c',
227  'main/querymatrix.h',
228  'main/queryobj.c',
229  'main/queryobj.h',
230  'main/rastpos.c',
231  'main/rastpos.h',
232  'main/readpix.c',
233  'main/readpix.h',
234  'main/remap.c',
235  'main/remap.h',
236  'main/renderbuffer.c',
237  'main/renderbuffer.h',
238  'main/robustness.c',
239  'main/samplerobj.c',
240  'main/samplerobj.h',
241  'main/scissor.c',
242  'main/scissor.h',
243  'main/shaderapi.c',
244  'main/shaderapi.h',
245  'main/shaderimage.c',
246  'main/shaderimage.h',
247  'main/shaderobj.c',
248  'main/shaderobj.h',
249  'main/shader_query.cpp',
250  'main/shared.c',
251  'main/shared.h',
252  'main/state.c',
253  'main/state.h',
254  'main/stencil.c',
255  'main/stencil.h',
256  'main/syncobj.c',
257  'main/syncobj.h',
258  'main/texcompress.c',
259  'main/texcompress_astc.cpp',
260  'main/texcompress_astc.h',
261  'main/texcompress_bptc.c',
262  'main/texcompress_bptc.h',
263  'main/texcompress_cpal.c',
264  'main/texcompress_cpal.h',
265  'main/texcompress_etc.c',
266  'main/texcompress_etc.h',
267  'main/texcompress_etc_tmp.h',
268  'main/texcompress_fxt1.c',
269  'main/texcompress_fxt1.h',
270  'main/texcompress.h',
271  'main/texcompress_rgtc.c',
272  'main/texcompress_rgtc.h',
273  'main/texcompress_s3tc.c',
274  'main/texcompress_s3tc.h',
275  'main/texenv.c',
276  'main/texenv.h',
277  'main/texenvprogram.h',
278  'main/texformat.c',
279  'main/texformat.h',
280  'main/texgen.c',
281  'main/texgen.h',
282  'main/texgetimage.c',
283  'main/texgetimage.h',
284  'main/teximage.c',
285  'main/teximage.h',
286  'main/texobj.c',
287  'main/texobj.h',
288  'main/texparam.c',
289  'main/texparam.h',
290  'main/texstate.c',
291  'main/texstate.h',
292  'main/texstorage.c',
293  'main/texstorage.h',
294  'main/texstore.c',
295  'main/texstore.h',
296  'main/texturebindless.c',
297  'main/texturebindless.h',
298  'main/textureview.c',
299  'main/textureview.h',
300  'main/transformfeedback.c',
301  'main/transformfeedback.h',
302  'main/uniform_query.cpp',
303  'main/uniforms.c',
304  'main/uniforms.h',
305  'main/varray.c',
306  'main/varray.h',
307  'main/vdpau.c',
308  'main/vdpau.h',
309  'main/version.c',
310  'main/version.h',
311  'main/viewport.c',
312  'main/viewport.h',
313  'main/vtxfmt.c',
314  'main/vtxfmt.h',
315  'main/es1_conversion.c',
316  'main/es1_conversion.h',
317  'math/m_debug.h',
318  'math/m_debug_clip.c',
319  'math/m_debug_norm.c',
320  'math/m_debug_util.h',
321  'math/m_debug_xform.c',
322  'math/m_eval.c',
323  'math/m_eval.h',
324  'math/m_matrix.c',
325  'math/m_matrix.h',
326  'math/m_trans_tmp.h',
327  'math/m_translate.c',
328  'math/m_translate.h',
329  'math/m_vector.c',
330  'math/m_vector.h',
331  'vbo/vbo_attrib.h',
332  'vbo/vbo_attrib_tmp.h',
333  'vbo/vbo_context.c',
334  'vbo/vbo_exec_api.c',
335  'vbo/vbo_exec.c',
336  'vbo/vbo_exec_draw.c',
337  'vbo/vbo_exec_eval.c',
338  'vbo/vbo_exec.h',
339  'vbo/vbo.h',
340  'vbo/vbo_minmax_index.c',
341  'vbo/vbo_noop.c',
342  'vbo/vbo_noop.h',
343  'vbo/vbo_primitive_restart.c',
344  'vbo/vbo_save_api.c',
345  'vbo/vbo_save.c',
346  'vbo/vbo_save_draw.c',
347  'vbo/vbo_save.h',
348  'vbo/vbo_save_loopback.c',
349  'x86/common_x86.c',
350)
351
352# mesa files
353files_libmesa_classic = files(
354  'math/m_clip_tmp.h',
355  'math/m_copy_tmp.h',
356  'math/m_dotprod_tmp.h',
357  'math/m_norm_tmp.h',
358  'math/m_xform.c',
359  'math/m_xform.h',
360  'math/m_xform_tmp.h',
361  'tnl/t_context.c',
362  'tnl/t_context.h',
363  'tnl/t_draw.c',
364  'tnl/tnl.h',
365  'tnl/t_pipeline.c',
366  'tnl/t_pipeline.h',
367  'tnl/t_rebase.c',
368  'tnl/t_split.c',
369  'tnl/t_split_copy.c',
370  'tnl/t_split.h',
371  'tnl/t_split_inplace.c',
372  'tnl/t_vb_cliptmp.h',
373  'tnl/t_vb_fog.c',
374  'tnl/t_vb_light.c',
375  'tnl/t_vb_lighttmp.h',
376  'tnl/t_vb_normals.c',
377  'tnl/t_vb_points.c',
378  'tnl/t_vb_program.c',
379  'tnl/t_vb_render.c',
380  'tnl/t_vb_rendertmp.h',
381  'tnl/t_vb_texgen.c',
382  'tnl/t_vb_texmat.c',
383  'tnl/t_vb_vertex.c',
384  'tnl/t_vertex.c',
385  'tnl/t_vertex_generic.c',
386  'tnl/t_vertex.h',
387  'tnl/t_vertex_sse.c',
388  'tnl/t_vp_build.c',
389  'tnl/t_vp_build.h',
390  'swrast/s_aaline.c',
391  'swrast/s_aaline.h',
392  'swrast/s_aalinetemp.h',
393  'swrast/s_aatriangle.c',
394  'swrast/s_aatriangle.h',
395  'swrast/s_aatritemp.h',
396  'swrast/s_alpha.c',
397  'swrast/s_alpha.h',
398  'swrast/s_atifragshader.c',
399  'swrast/s_atifragshader.h',
400  'swrast/s_bitmap.c',
401  'swrast/s_blend.c',
402  'swrast/s_blend.h',
403  'swrast/s_blit.c',
404  'swrast/s_chan.h',
405  'swrast/s_clear.c',
406  'swrast/s_context.c',
407  'swrast/s_context.h',
408  'swrast/s_copypix.c',
409  'swrast/s_depth.c',
410  'swrast/s_depth.h',
411  'swrast/s_drawpix.c',
412  'swrast_setup/ss_tritmp.h',
413  'swrast_setup/ss_vb.h',
414  'swrast_setup/swrast_setup.h',
415  'swrast/s_feedback.c',
416  'swrast/s_feedback.h',
417  'swrast/s_fog.c',
418  'swrast/s_fog.h',
419  'swrast/s_fragprog.c',
420  'swrast/s_fragprog.h',
421  'swrast/s_lines.c',
422  'swrast/s_lines.h',
423  'swrast/s_linetemp.h',
424  'swrast/s_logic.c',
425  'swrast/s_logic.h',
426  'swrast/s_masking.c',
427  'swrast/s_masking.h',
428  'swrast/s_points.c',
429  'swrast/s_points.h',
430  'swrast/s_renderbuffer.c',
431  'swrast/s_renderbuffer.h',
432  'swrast/s_span.c',
433  'swrast/s_span.h',
434  'swrast/s_stencil.c',
435  'swrast/s_stencil.h',
436  'swrast/s_texcombine.c',
437  'swrast/s_texcombine.h',
438  'swrast/s_texfetch.c',
439  'swrast/s_texfetch.h',
440  'swrast/s_texfetch_tmp.h',
441  'swrast/s_texfilter.c',
442  'swrast/s_texfilter.h',
443  'swrast/s_texrender.c',
444  'swrast/s_texture.c',
445  'swrast/s_triangle.c',
446  'swrast/s_triangle.h',
447  'swrast/s_tritemp.h',
448  'swrast/swrast.h',
449  'swrast/s_zoom.c',
450  'swrast/s_zoom.h',
451  'swrast_setup/ss_context.c',
452  'swrast_setup/ss_context.h',
453  'swrast_setup/ss_triangle.c',
454  'swrast_setup/ss_triangle.h',
455  'drivers/common/driverfuncs.c',
456  'drivers/common/driverfuncs.h',
457  'drivers/common/meta_blit.c',
458  'drivers/common/meta_generate_mipmap.c',
459  'drivers/common/meta.c',
460  'drivers/common/meta.h',
461  'x86/x86_xform.c',
462  'x86/3dnow.c',
463  'x86/sse.c',
464  'x86/rtasm/x86sse.c',
465  'x86/rtasm/x86sse.h',
466  'sparc/sparc.c',
467  'x86-64/x86-64.c',
468)
469
470files_libmesa_gallium = files(
471  'state_tracker/st_atifs_to_tgsi.c',
472  'state_tracker/st_atifs_to_tgsi.h',
473  'state_tracker/st_atom_array.c',
474  'state_tracker/st_atom_atomicbuf.c',
475  'state_tracker/st_atom_blend.c',
476  'state_tracker/st_atom.c',
477  'state_tracker/st_atom_clip.c',
478  'state_tracker/st_atom_constbuf.c',
479  'state_tracker/st_atom_constbuf.h',
480  'state_tracker/st_atom_depth.c',
481  'state_tracker/st_atom_framebuffer.c',
482  'state_tracker/st_atom.h',
483  'state_tracker/st_atom_list.h',
484  'state_tracker/st_atom_image.c',
485  'state_tracker/st_atom_msaa.c',
486  'state_tracker/st_atom_pixeltransfer.c',
487  'state_tracker/st_atom_rasterizer.c',
488  'state_tracker/st_atom_sampler.c',
489  'state_tracker/st_atom_scissor.c',
490  'state_tracker/st_atom_shader.c',
491  'state_tracker/st_atom_stipple.c',
492  'state_tracker/st_atom_storagebuf.c',
493  'state_tracker/st_atom_tess.c',
494  'state_tracker/st_atom_texture.c',
495  'state_tracker/st_atom_viewport.c',
496  'state_tracker/st_cb_bitmap.c',
497  'state_tracker/st_cb_bitmap.h',
498  'state_tracker/st_cb_bitmap_shader.c',
499  'state_tracker/st_cb_blit.c',
500  'state_tracker/st_cb_blit.h',
501  'state_tracker/st_cb_bufferobjects.c',
502  'state_tracker/st_cb_bufferobjects.h',
503  'state_tracker/st_cb_clear.c',
504  'state_tracker/st_cb_clear.h',
505  'state_tracker/st_cb_compute.c',
506  'state_tracker/st_cb_compute.h',
507  'state_tracker/st_cb_condrender.c',
508  'state_tracker/st_cb_condrender.h',
509  'state_tracker/st_cb_copyimage.c',
510  'state_tracker/st_cb_copyimage.h',
511  'state_tracker/st_cb_drawpixels.c',
512  'state_tracker/st_cb_drawpixels.h',
513  'state_tracker/st_cb_drawpixels_shader.c',
514  'state_tracker/st_cb_drawtex.c',
515  'state_tracker/st_cb_drawtex.h',
516  'state_tracker/st_cb_eglimage.c',
517  'state_tracker/st_cb_eglimage.h',
518  'state_tracker/st_cb_fbo.c',
519  'state_tracker/st_cb_fbo.h',
520  'state_tracker/st_cb_feedback.c',
521  'state_tracker/st_cb_feedback.h',
522  'state_tracker/st_cb_flush.c',
523  'state_tracker/st_cb_flush.h',
524  'state_tracker/st_cb_memoryobjects.c',
525  'state_tracker/st_cb_memoryobjects.h',
526  'state_tracker/st_cb_msaa.c',
527  'state_tracker/st_cb_msaa.h',
528  'state_tracker/st_cb_perfmon.c',
529  'state_tracker/st_cb_perfmon.h',
530  'state_tracker/st_cb_program.c',
531  'state_tracker/st_cb_program.h',
532  'state_tracker/st_cb_queryobj.c',
533  'state_tracker/st_cb_queryobj.h',
534  'state_tracker/st_cb_rasterpos.c',
535  'state_tracker/st_cb_rasterpos.h',
536  'state_tracker/st_cb_readpixels.c',
537  'state_tracker/st_cb_readpixels.h',
538  'state_tracker/st_cb_strings.c',
539  'state_tracker/st_cb_strings.h',
540  'state_tracker/st_cb_semaphoreobjects.c',
541  'state_tracker/st_cb_semaphoreobjects.h',
542  'state_tracker/st_cb_syncobj.c',
543  'state_tracker/st_cb_syncobj.h',
544  'state_tracker/st_cb_texturebarrier.c',
545  'state_tracker/st_cb_texturebarrier.h',
546  'state_tracker/st_cb_texture.c',
547  'state_tracker/st_cb_texture.h',
548  'state_tracker/st_cb_viewport.c',
549  'state_tracker/st_cb_viewport.h',
550  'state_tracker/st_cb_xformfb.c',
551  'state_tracker/st_cb_xformfb.h',
552  'state_tracker/st_context.c',
553  'state_tracker/st_context.h',
554  'state_tracker/st_copytex.c',
555  'state_tracker/st_copytex.h',
556  'state_tracker/st_debug.c',
557  'state_tracker/st_debug.h',
558  'state_tracker/st_draw.c',
559  'state_tracker/st_draw_feedback.c',
560  'state_tracker/st_draw.h',
561  'state_tracker/st_extensions.c',
562  'state_tracker/st_extensions.h',
563  'state_tracker/st_format.c',
564  'state_tracker/st_format.h',
565  'state_tracker/st_gen_mipmap.c',
566  'state_tracker/st_gen_mipmap.h',
567  'state_tracker/st_gl_api.h',
568  'state_tracker/st_glsl_to_ir.cpp',
569  'state_tracker/st_glsl_to_ir.h',
570  'state_tracker/st_glsl_to_nir.cpp',
571  'state_tracker/st_glsl_to_tgsi.cpp',
572  'state_tracker/st_glsl_to_tgsi.h',
573  'state_tracker/st_glsl_to_tgsi_array_merge.cpp',
574  'state_tracker/st_glsl_to_tgsi_array_merge.h',
575  'state_tracker/st_glsl_to_tgsi_private.cpp',
576  'state_tracker/st_glsl_to_tgsi_private.h',
577  'state_tracker/st_glsl_to_tgsi_temprename.cpp',
578  'state_tracker/st_glsl_to_tgsi_temprename.h',
579  'state_tracker/st_glsl_types.cpp',
580  'state_tracker/st_glsl_types.h',
581  'state_tracker/st_manager.c',
582  'state_tracker/st_manager.h',
583  'state_tracker/st_mesa_to_tgsi.c',
584  'state_tracker/st_mesa_to_tgsi.h',
585  'state_tracker/st_nir.h',
586  'state_tracker/st_nir_builtins.c',
587  'state_tracker/st_nir_lower_builtin.c',
588  'state_tracker/st_nir_lower_tex_src_plane.c',
589  'state_tracker/st_pbo.c',
590  'state_tracker/st_pbo.h',
591  'state_tracker/st_program.c',
592  'state_tracker/st_program.h',
593  'state_tracker/st_sampler_view.c',
594  'state_tracker/st_sampler_view.h',
595  'state_tracker/st_scissor.c',
596  'state_tracker/st_scissor.h',
597  'state_tracker/st_shader_cache.c',
598  'state_tracker/st_shader_cache.h',
599  'state_tracker/st_texture.c',
600  'state_tracker/st_texture.h',
601  'state_tracker/st_tgsi_lower_yuv.c',
602  'state_tracker/st_tgsi_lower_yuv.h',
603  'state_tracker/st_util.h',
604  'state_tracker/st_vdpau.c',
605  'state_tracker/st_vdpau.h',
606)
607
608matypes_h = []
609if with_asm_arch == 'x86' or with_asm_arch == 'x86_64'
610  gen_matypes = executable(
611    'gen_matypes',
612    'x86/gen_matypes.c',
613    c_args : [c_vis_args, c_msvc_compat_args],
614    include_directories : inc_common,
615  )
616  matypes_h = custom_target(
617    'matypes.h',
618    output : 'matypes.h',
619    command : [gen_matypes],
620    capture : true,
621  )
622endif
623
624inc_libmesa_asm = []
625if with_asm_arch == 'x86'
626  files_libmesa_common += files(
627    'x86/assyntax.h',
628    'x86/clip_args.h',
629    'x86/norm_args.h',
630    'x86/xform_args.h',
631    'x86/common_x86_asm.S',
632    'x86/common_x86_asm.h',
633    'x86/common_x86_features.h',
634    'x86/x86_xform.h',
635    'x86/x86_xform2.S',
636    'x86/x86_xform3.S',
637    'x86/x86_xform4.S',
638    'x86/x86_cliptest.S',
639    'x86/mmx.h',
640    'x86/mmx_blend.S',
641    'x86/mmx_blendtmp.h',
642    'x86/3dnow.h',
643    'x86/3dnow_xform1.S',
644    'x86/3dnow_xform2.S',
645    'x86/3dnow_xform3.S',
646    'x86/3dnow_xform4.S',
647    'x86/sse.h',
648    'x86/sse_xform1.S',
649    'x86/sse_xform2.S',
650    'x86/sse_xform3.S',
651    'x86/sse_xform4.S',
652    'x86/sse_normal.S',
653    'x86/read_rgba_span_x86.S',
654  )
655  inc_libmesa_asm = include_directories('x86')
656elif with_asm_arch == 'x86_64'
657  files_libmesa_common += files('x86-64/x86-64.h', 'x86-64/xform4.S')
658  inc_libmesa_asm = include_directories('x86-64')
659elif with_asm_arch == 'sparc'
660  files_libmesa_common += files(
661    'sparc/sparc_clip.S',
662    'sparc/norm.S',
663    'sparc/xform.S',
664  )
665  inc_libmesa_asm = include_directories('sparc')
666endif
667
668format_fallback_c = custom_target(
669  'format_fallback.c',
670  input : ['main/format_fallback.py', 'main/formats.csv'],
671  output : 'format_fallback.c',
672  command : [prog_python, '@INPUT0@', '@INPUT1@', '@OUTPUT@'],
673  depend_files : files('main/format_parser.py'),
674)
675
676get_hash_h = custom_target(
677  'get_hash.h',
678  input : ['main/get_hash_generator.py', gl_and_es_api_files],
679  output : 'get_hash.h',
680  command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'],
681  depend_files : files('main/get_hash_params.py'),
682  capture : true,
683)
684
685foreach x : [['format_info.h', 'format_info.py'],
686             ['format_pack.c', 'format_pack.py'],
687             ['format_unpack.c', 'format_unpack.py']]
688  files_libmesa_common += custom_target(
689    x[0],
690    input : ['main/@0@'.format(x[1]), 'main/formats.csv'],
691    output : x[0],
692    command : [prog_python, '@INPUT0@', '@INPUT1@'],
693    depend_files : files('main/format_parser.py'),
694    capture : true,
695  )
696endforeach
697
698files_libmesa_common += [
699  mesa_lex,
700  program_parse_tab,
701  main_api_exec_c,
702  main_enums_c,
703  format_fallback_c,
704  get_hash_h,
705  main_marshal_generated_c,
706  main_marshal_generated_h,
707  main_dispatch_h,
708  ir_expression_operation_h,
709  main_remap_helper_h,
710  matypes_h,
711  sha1_h,
712]
713
714if with_sse41
715  libmesa_sse41 = static_library(
716    'mesa_sse41',
717    files('main/streaming-load-memcpy.c', 'main/sse_minmax.c'),
718    c_args : [c_vis_args, c_msvc_compat_args, sse41_args],
719    include_directories : inc_common,
720  )
721else
722  libmesa_sse41 = []
723endif
724
725libmesa_classic = static_library(
726  'mesa_classic',
727  [files_libmesa_common, files_libmesa_classic],
728  c_args : [c_vis_args, c_msvc_compat_args],
729  cpp_args : [cpp_vis_args, cpp_msvc_compat_args],
730  include_directories : [inc_common, inc_libmesa_asm, include_directories('main')],
731  link_with : [libglsl, libmesa_sse41],
732  dependencies : idep_nir_headers,
733  build_by_default : false,
734)
735
736libmesa_gallium = static_library(
737  'mesa_gallium',
738  [files_libmesa_common, files_libmesa_gallium],
739  c_args : [c_vis_args, c_msvc_compat_args],
740  cpp_args : [cpp_vis_args, cpp_msvc_compat_args],
741  include_directories : [inc_common, inc_libmesa_asm, include_directories('main')],
742  link_with : [libglsl, libmesa_sse41],
743  dependencies : [idep_nir_headers, dep_vdpau],
744  build_by_default : false,
745)
746
747subdir('drivers/dri')
748if with_osmesa == 'classic'
749  subdir('drivers/osmesa')
750endif
751if with_glx == 'xlib'
752  subdir('drivers/x11')
753endif
754if with_tests and dri_drivers != []
755  subdir('main/tests')
756endif
757