xref: /aosp_15_r20/external/mesa3d/src/compiler/nir/meson.build (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker# Copyright © 2017 Intel Corporation
2*61046927SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT
3*61046927SAndroid Build Coastguard Worker
4*61046927SAndroid Build Coastguard Workernir_depends = files('nir_opcodes.py', 'nir_intrinsics.py')
5*61046927SAndroid Build Coastguard Worker
6*61046927SAndroid Build Coastguard Workernir_algebraic_depends = files('nir_opcodes.py', 'nir_algebraic.py')
7*61046927SAndroid Build Coastguard Worker
8*61046927SAndroid Build Coastguard Workernir_builder_opcodes_h = custom_target(
9*61046927SAndroid Build Coastguard Worker  'nir_builder_opcodes.h',
10*61046927SAndroid Build Coastguard Worker  input : 'nir_builder_opcodes_h.py',
11*61046927SAndroid Build Coastguard Worker  output : 'nir_builder_opcodes.h',
12*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@'],
13*61046927SAndroid Build Coastguard Worker  capture : true,
14*61046927SAndroid Build Coastguard Worker  depend_files : nir_depends,
15*61046927SAndroid Build Coastguard Worker)
16*61046927SAndroid Build Coastguard Worker
17*61046927SAndroid Build Coastguard Workernir_constant_expressions_c = custom_target(
18*61046927SAndroid Build Coastguard Worker  'nir_constant_expressions.c',
19*61046927SAndroid Build Coastguard Worker  input : 'nir_constant_expressions.py',
20*61046927SAndroid Build Coastguard Worker  output : 'nir_constant_expressions.c',
21*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@'],
22*61046927SAndroid Build Coastguard Worker  capture : true,
23*61046927SAndroid Build Coastguard Worker  depend_files : nir_depends,
24*61046927SAndroid Build Coastguard Worker)
25*61046927SAndroid Build Coastguard Worker
26*61046927SAndroid Build Coastguard Workernir_opcodes_h = custom_target(
27*61046927SAndroid Build Coastguard Worker  'nir_opcodes.h',
28*61046927SAndroid Build Coastguard Worker  input : 'nir_opcodes_h.py',
29*61046927SAndroid Build Coastguard Worker  output : 'nir_opcodes.h',
30*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@'],
31*61046927SAndroid Build Coastguard Worker  capture : true,
32*61046927SAndroid Build Coastguard Worker  depend_files : nir_depends,
33*61046927SAndroid Build Coastguard Worker)
34*61046927SAndroid Build Coastguard Worker
35*61046927SAndroid Build Coastguard Workernir_opcodes_c = custom_target(
36*61046927SAndroid Build Coastguard Worker  'nir_opcodes.c',
37*61046927SAndroid Build Coastguard Worker  input : 'nir_opcodes_c.py',
38*61046927SAndroid Build Coastguard Worker  output : 'nir_opcodes.c',
39*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@'],
40*61046927SAndroid Build Coastguard Worker  capture : true,
41*61046927SAndroid Build Coastguard Worker  depend_files : nir_depends,
42*61046927SAndroid Build Coastguard Worker)
43*61046927SAndroid Build Coastguard Worker
44*61046927SAndroid Build Coastguard Workernir_opt_algebraic_c = custom_target(
45*61046927SAndroid Build Coastguard Worker  'nir_opt_algebraic.c',
46*61046927SAndroid Build Coastguard Worker  input : 'nir_opt_algebraic.py',
47*61046927SAndroid Build Coastguard Worker  output : 'nir_opt_algebraic.c',
48*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@', '--out', '@OUTPUT@'],
49*61046927SAndroid Build Coastguard Worker  depend_files : nir_algebraic_depends,
50*61046927SAndroid Build Coastguard Worker)
51*61046927SAndroid Build Coastguard Worker
52*61046927SAndroid Build Coastguard Workernir_intrinsics_h = custom_target(
53*61046927SAndroid Build Coastguard Worker  'nir_intrinsics.h',
54*61046927SAndroid Build Coastguard Worker  input : 'nir_intrinsics_h.py',
55*61046927SAndroid Build Coastguard Worker  output : 'nir_intrinsics.h',
56*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@', '--outdir', meson.current_build_dir()],
57*61046927SAndroid Build Coastguard Worker  capture : false,
58*61046927SAndroid Build Coastguard Worker  depend_files : files('nir_intrinsics.py'),
59*61046927SAndroid Build Coastguard Worker)
60*61046927SAndroid Build Coastguard Worker
61*61046927SAndroid Build Coastguard Workernir_intrinsics_indices_h = custom_target(
62*61046927SAndroid Build Coastguard Worker  'nir_intrinsics_indices.h',
63*61046927SAndroid Build Coastguard Worker  input : 'nir_intrinsics_indices_h.py',
64*61046927SAndroid Build Coastguard Worker  output : 'nir_intrinsics_indices.h',
65*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@', '--outdir', meson.current_build_dir()],
66*61046927SAndroid Build Coastguard Worker  capture : false,
67*61046927SAndroid Build Coastguard Worker  depend_files : files('nir_intrinsics.py'),
68*61046927SAndroid Build Coastguard Worker)
69*61046927SAndroid Build Coastguard Worker
70*61046927SAndroid Build Coastguard Workernir_intrinsics_c = custom_target(
71*61046927SAndroid Build Coastguard Worker  'nir_intrinsic.c',
72*61046927SAndroid Build Coastguard Worker  input : 'nir_intrinsics_c.py',
73*61046927SAndroid Build Coastguard Worker  output : 'nir_intrinsics.c',
74*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@', '--outdir', meson.current_build_dir()],
75*61046927SAndroid Build Coastguard Worker  capture: false,
76*61046927SAndroid Build Coastguard Worker  depend_files : files('nir_intrinsics.py'),
77*61046927SAndroid Build Coastguard Worker)
78*61046927SAndroid Build Coastguard Worker
79*61046927SAndroid Build Coastguard Workerfiles_libnir = files(
80*61046927SAndroid Build Coastguard Worker  'nir.c',
81*61046927SAndroid Build Coastguard Worker  'nir.h',
82*61046927SAndroid Build Coastguard Worker  'nir_builder.c',
83*61046927SAndroid Build Coastguard Worker  'nir_builder.h',
84*61046927SAndroid Build Coastguard Worker  'nir_builtin_builder.c',
85*61046927SAndroid Build Coastguard Worker  'nir_builtin_builder.h',
86*61046927SAndroid Build Coastguard Worker  'nir_conversion_builder.h',
87*61046927SAndroid Build Coastguard Worker  'nir_clone.c',
88*61046927SAndroid Build Coastguard Worker  'nir_constant_expressions.h',
89*61046927SAndroid Build Coastguard Worker  'nir_control_flow.c',
90*61046927SAndroid Build Coastguard Worker  'nir_control_flow.h',
91*61046927SAndroid Build Coastguard Worker  'nir_control_flow_private.h',
92*61046927SAndroid Build Coastguard Worker  'nir_deref.c',
93*61046927SAndroid Build Coastguard Worker  'nir_deref.h',
94*61046927SAndroid Build Coastguard Worker  'nir_divergence_analysis.c',
95*61046927SAndroid Build Coastguard Worker  'nir_dominance.c',
96*61046927SAndroid Build Coastguard Worker  'nir_format_convert.c',
97*61046927SAndroid Build Coastguard Worker  'nir_format_convert.h',
98*61046927SAndroid Build Coastguard Worker  'nir_from_ssa.c',
99*61046927SAndroid Build Coastguard Worker  'nir_functions.c',
100*61046927SAndroid Build Coastguard Worker  'nir_gather_info.c',
101*61046927SAndroid Build Coastguard Worker  'nir_gather_types.c',
102*61046927SAndroid Build Coastguard Worker  'nir_gather_xfb_info.c',
103*61046927SAndroid Build Coastguard Worker  'nir_group_loads.c',
104*61046927SAndroid Build Coastguard Worker  'nir_gs_count_vertices.c',
105*61046927SAndroid Build Coastguard Worker  'nir_inline_uniforms.c',
106*61046927SAndroid Build Coastguard Worker  'nir_instr_set.c',
107*61046927SAndroid Build Coastguard Worker  'nir_instr_set.h',
108*61046927SAndroid Build Coastguard Worker  'nir_legacy.c',
109*61046927SAndroid Build Coastguard Worker  'nir_legacy.h',
110*61046927SAndroid Build Coastguard Worker  'nir_linking_helpers.c',
111*61046927SAndroid Build Coastguard Worker  'nir_liveness.c',
112*61046927SAndroid Build Coastguard Worker  'nir_loop_analyze.c',
113*61046927SAndroid Build Coastguard Worker  'nir_loop_analyze.h',
114*61046927SAndroid Build Coastguard Worker  'nir_lower_alu.c',
115*61046927SAndroid Build Coastguard Worker  'nir_lower_alu_width.c',
116*61046927SAndroid Build Coastguard Worker  'nir_lower_alpha_test.c',
117*61046927SAndroid Build Coastguard Worker  'nir_lower_amul.c',
118*61046927SAndroid Build Coastguard Worker  'nir_lower_array_deref_of_vec.c',
119*61046927SAndroid Build Coastguard Worker  'nir_lower_atomics_to_ssbo.c',
120*61046927SAndroid Build Coastguard Worker  'nir_lower_bitmap.c',
121*61046927SAndroid Build Coastguard Worker  'nir_lower_blend.c',
122*61046927SAndroid Build Coastguard Worker  'nir_lower_bool_to_bitsize.c',
123*61046927SAndroid Build Coastguard Worker  'nir_lower_bool_to_float.c',
124*61046927SAndroid Build Coastguard Worker  'nir_lower_bool_to_int32.c',
125*61046927SAndroid Build Coastguard Worker  'nir_lower_cl_images.c',
126*61046927SAndroid Build Coastguard Worker  'nir_lower_clamp_color_outputs.c',
127*61046927SAndroid Build Coastguard Worker  'nir_lower_clip.c',
128*61046927SAndroid Build Coastguard Worker  'nir_lower_clip_cull_distance_arrays.c',
129*61046927SAndroid Build Coastguard Worker  'nir_lower_clip_disable.c',
130*61046927SAndroid Build Coastguard Worker  'nir_lower_clip_halfz.c',
131*61046927SAndroid Build Coastguard Worker  'nir_lower_const_arrays_to_uniforms.c',
132*61046927SAndroid Build Coastguard Worker  'nir_lower_continue_constructs.c',
133*61046927SAndroid Build Coastguard Worker  'nir_lower_convert_alu_types.c',
134*61046927SAndroid Build Coastguard Worker  'nir_lower_variable_initializers.c',
135*61046927SAndroid Build Coastguard Worker  'nir_lower_discard_if.c',
136*61046927SAndroid Build Coastguard Worker  'nir_lower_double_ops.c',
137*61046927SAndroid Build Coastguard Worker  'nir_lower_drawpixels.c',
138*61046927SAndroid Build Coastguard Worker  'nir_lower_fb_read.c',
139*61046927SAndroid Build Coastguard Worker  'nir_lower_flatshade.c',
140*61046927SAndroid Build Coastguard Worker  'nir_lower_flrp.c',
141*61046927SAndroid Build Coastguard Worker  'nir_lower_fp16_conv.c',
142*61046927SAndroid Build Coastguard Worker  'nir_lower_fragcoord_wtrans.c',
143*61046927SAndroid Build Coastguard Worker  'nir_lower_frag_coord_to_pixel_coord.c',
144*61046927SAndroid Build Coastguard Worker  'nir_lower_fragcolor.c',
145*61046927SAndroid Build Coastguard Worker  'nir_lower_frexp.c',
146*61046927SAndroid Build Coastguard Worker  'nir_lower_global_vars_to_local.c',
147*61046927SAndroid Build Coastguard Worker  'nir_lower_goto_ifs.c',
148*61046927SAndroid Build Coastguard Worker  'nir_lower_gs_intrinsics.c',
149*61046927SAndroid Build Coastguard Worker  'nir_lower_helper_writes.c',
150*61046927SAndroid Build Coastguard Worker  'nir_lower_load_const_to_scalar.c',
151*61046927SAndroid Build Coastguard Worker  'nir_lower_locals_to_regs.c',
152*61046927SAndroid Build Coastguard Worker  'nir_lower_idiv.c',
153*61046927SAndroid Build Coastguard Worker  'nir_lower_image.c',
154*61046927SAndroid Build Coastguard Worker  'nir_lower_image_atomics_to_global.c',
155*61046927SAndroid Build Coastguard Worker  'nir_lower_indirect_derefs.c',
156*61046927SAndroid Build Coastguard Worker  'nir_lower_input_attachments.c',
157*61046927SAndroid Build Coastguard Worker  'nir_lower_int64.c',
158*61046927SAndroid Build Coastguard Worker  'nir_lower_interpolation.c',
159*61046927SAndroid Build Coastguard Worker  'nir_lower_int_to_float.c',
160*61046927SAndroid Build Coastguard Worker  'nir_lower_io.c',
161*61046927SAndroid Build Coastguard Worker  'nir_lower_io_arrays_to_elements.c',
162*61046927SAndroid Build Coastguard Worker  'nir_lower_io_to_temporaries.c',
163*61046927SAndroid Build Coastguard Worker  'nir_lower_io_to_scalar.c',
164*61046927SAndroid Build Coastguard Worker  'nir_lower_io_to_vector.c',
165*61046927SAndroid Build Coastguard Worker  'nir_lower_is_helper_invocation.c',
166*61046927SAndroid Build Coastguard Worker  'nir_lower_multiview.c',
167*61046927SAndroid Build Coastguard Worker  'nir_lower_mediump.c',
168*61046927SAndroid Build Coastguard Worker  'nir_lower_mem_access_bit_sizes.c',
169*61046927SAndroid Build Coastguard Worker  'nir_lower_memcpy.c',
170*61046927SAndroid Build Coastguard Worker  'nir_lower_memory_model.c',
171*61046927SAndroid Build Coastguard Worker  'nir_lower_non_uniform_access.c',
172*61046927SAndroid Build Coastguard Worker  'nir_lower_packing.c',
173*61046927SAndroid Build Coastguard Worker  'nir_lower_passthrough_edgeflags.c',
174*61046927SAndroid Build Coastguard Worker  'nir_lower_patch_vertices.c',
175*61046927SAndroid Build Coastguard Worker  'nir_lower_phis_to_scalar.c',
176*61046927SAndroid Build Coastguard Worker  'nir_lower_pntc_ytransform.c',
177*61046927SAndroid Build Coastguard Worker  'nir_lower_point_size.c',
178*61046927SAndroid Build Coastguard Worker  'nir_lower_point_size_mov.c',
179*61046927SAndroid Build Coastguard Worker  'nir_lower_point_smooth.c',
180*61046927SAndroid Build Coastguard Worker  'nir_lower_poly_line_smooth.c',
181*61046927SAndroid Build Coastguard Worker  'nir_lower_printf.c',
182*61046927SAndroid Build Coastguard Worker  'nir_lower_reg_intrinsics_to_ssa.c',
183*61046927SAndroid Build Coastguard Worker  'nir_lower_readonly_images_to_tex.c',
184*61046927SAndroid Build Coastguard Worker  'nir_lower_returns.c',
185*61046927SAndroid Build Coastguard Worker  'nir_lower_robust_access.c',
186*61046927SAndroid Build Coastguard Worker  'nir_lower_samplers.c',
187*61046927SAndroid Build Coastguard Worker  'nir_lower_scratch.c',
188*61046927SAndroid Build Coastguard Worker  'nir_lower_shader_calls.c',
189*61046927SAndroid Build Coastguard Worker  'nir_lower_single_sampled.c',
190*61046927SAndroid Build Coastguard Worker  'nir_lower_ssbo.c',
191*61046927SAndroid Build Coastguard Worker  'nir_lower_subgroups.c',
192*61046927SAndroid Build Coastguard Worker  'nir_lower_system_values.c',
193*61046927SAndroid Build Coastguard Worker  'nir_lower_task_shader.c',
194*61046927SAndroid Build Coastguard Worker  'nir_lower_terminate_to_demote.c',
195*61046927SAndroid Build Coastguard Worker  'nir_lower_tess_coord_z.c',
196*61046927SAndroid Build Coastguard Worker  'nir_lower_tex_shadow.c',
197*61046927SAndroid Build Coastguard Worker  'nir_lower_tex.c',
198*61046927SAndroid Build Coastguard Worker  'nir_lower_texcoord_replace.c',
199*61046927SAndroid Build Coastguard Worker  'nir_lower_texcoord_replace_late.c',
200*61046927SAndroid Build Coastguard Worker  'nir_lower_two_sided_color.c',
201*61046927SAndroid Build Coastguard Worker  'nir_lower_undef_to_zero.c',
202*61046927SAndroid Build Coastguard Worker  'nir_lower_vars_to_ssa.c',
203*61046927SAndroid Build Coastguard Worker  'nir_lower_var_copies.c',
204*61046927SAndroid Build Coastguard Worker  'nir_lower_vec_to_regs.c',
205*61046927SAndroid Build Coastguard Worker  'nir_lower_vec3_to_vec4.c',
206*61046927SAndroid Build Coastguard Worker  'nir_lower_view_index_to_device_index.c',
207*61046927SAndroid Build Coastguard Worker  'nir_lower_viewport_transform.c',
208*61046927SAndroid Build Coastguard Worker  'nir_lower_wpos_center.c',
209*61046927SAndroid Build Coastguard Worker  'nir_lower_wpos_ytransform.c',
210*61046927SAndroid Build Coastguard Worker  'nir_lower_wrmasks.c',
211*61046927SAndroid Build Coastguard Worker  'nir_lower_bit_size.c',
212*61046927SAndroid Build Coastguard Worker  'nir_lower_ubo_vec4.c',
213*61046927SAndroid Build Coastguard Worker  'nir_lower_uniforms_to_ubo.c',
214*61046927SAndroid Build Coastguard Worker  'nir_lower_sysvals_to_varyings.c',
215*61046927SAndroid Build Coastguard Worker  'nir_metadata.c',
216*61046927SAndroid Build Coastguard Worker  'nir_mod_analysis.c',
217*61046927SAndroid Build Coastguard Worker  'nir_move_vec_src_uses_to_dest.c',
218*61046927SAndroid Build Coastguard Worker  'nir_normalize_cubemap_coords.c',
219*61046927SAndroid Build Coastguard Worker  'nir_opt_access.c',
220*61046927SAndroid Build Coastguard Worker  'nir_opt_barriers.c',
221*61046927SAndroid Build Coastguard Worker  'nir_opt_combine_stores.c',
222*61046927SAndroid Build Coastguard Worker  'nir_opt_comparison_pre.c',
223*61046927SAndroid Build Coastguard Worker  'nir_opt_conditional_discard.c',
224*61046927SAndroid Build Coastguard Worker  'nir_opt_constant_folding.c',
225*61046927SAndroid Build Coastguard Worker  'nir_opt_copy_prop_vars.c',
226*61046927SAndroid Build Coastguard Worker  'nir_opt_copy_propagate.c',
227*61046927SAndroid Build Coastguard Worker  'nir_opt_cse.c',
228*61046927SAndroid Build Coastguard Worker  'nir_opt_dce.c',
229*61046927SAndroid Build Coastguard Worker  'nir_opt_dead_cf.c',
230*61046927SAndroid Build Coastguard Worker  'nir_opt_dead_write_vars.c',
231*61046927SAndroid Build Coastguard Worker  'nir_opt_find_array_copies.c',
232*61046927SAndroid Build Coastguard Worker  'nir_opt_fragdepth.c',
233*61046927SAndroid Build Coastguard Worker  'nir_opt_gcm.c',
234*61046927SAndroid Build Coastguard Worker  'nir_opt_generate_bfi.c',
235*61046927SAndroid Build Coastguard Worker  'nir_opt_idiv_const.c',
236*61046927SAndroid Build Coastguard Worker  'nir_opt_if.c',
237*61046927SAndroid Build Coastguard Worker  'nir_opt_intrinsics.c',
238*61046927SAndroid Build Coastguard Worker  'nir_opt_large_constants.c',
239*61046927SAndroid Build Coastguard Worker  'nir_opt_licm.c',
240*61046927SAndroid Build Coastguard Worker  'nir_opt_load_store_vectorize.c',
241*61046927SAndroid Build Coastguard Worker  'nir_opt_loop.c',
242*61046927SAndroid Build Coastguard Worker  'nir_opt_loop_unroll.c',
243*61046927SAndroid Build Coastguard Worker  'nir_opt_memcpy.c',
244*61046927SAndroid Build Coastguard Worker  'nir_opt_move.c',
245*61046927SAndroid Build Coastguard Worker  'nir_opt_move_discards_to_top.c',
246*61046927SAndroid Build Coastguard Worker  'nir_opt_mqsad.c',
247*61046927SAndroid Build Coastguard Worker  'nir_opt_non_uniform_access.c',
248*61046927SAndroid Build Coastguard Worker  'nir_opt_offsets.c',
249*61046927SAndroid Build Coastguard Worker  'nir_opt_peephole_select.c',
250*61046927SAndroid Build Coastguard Worker  'nir_opt_phi_precision.c',
251*61046927SAndroid Build Coastguard Worker  'nir_opt_preamble.c',
252*61046927SAndroid Build Coastguard Worker  'nir_opt_ray_queries.c',
253*61046927SAndroid Build Coastguard Worker  'nir_opt_reassociate_bfi.c',
254*61046927SAndroid Build Coastguard Worker  'nir_opt_rematerialize_compares.c',
255*61046927SAndroid Build Coastguard Worker  'nir_opt_remove_phis.c',
256*61046927SAndroid Build Coastguard Worker  'nir_opt_reuse_constants.c',
257*61046927SAndroid Build Coastguard Worker  'nir_opt_shrink_stores.c',
258*61046927SAndroid Build Coastguard Worker  'nir_opt_shrink_vectors.c',
259*61046927SAndroid Build Coastguard Worker  'nir_opt_sink.c',
260*61046927SAndroid Build Coastguard Worker  'nir_opt_undef.c',
261*61046927SAndroid Build Coastguard Worker  'nir_opt_uniform_atomics.c',
262*61046927SAndroid Build Coastguard Worker  'nir_opt_uniform_subgroup.c',
263*61046927SAndroid Build Coastguard Worker  'nir_opt_varyings.c',
264*61046927SAndroid Build Coastguard Worker  'nir_opt_vectorize.c',
265*61046927SAndroid Build Coastguard Worker  'nir_opt_vectorize_io.c',
266*61046927SAndroid Build Coastguard Worker  'nir_passthrough_gs.c',
267*61046927SAndroid Build Coastguard Worker  'nir_passthrough_tcs.c',
268*61046927SAndroid Build Coastguard Worker  'nir_phi_builder.c',
269*61046927SAndroid Build Coastguard Worker  'nir_phi_builder.h',
270*61046927SAndroid Build Coastguard Worker  'nir_print.c',
271*61046927SAndroid Build Coastguard Worker  'nir_propagate_invariant.c',
272*61046927SAndroid Build Coastguard Worker  'nir_range_analysis.c',
273*61046927SAndroid Build Coastguard Worker  'nir_range_analysis.h',
274*61046927SAndroid Build Coastguard Worker  'nir_remove_dead_variables.c',
275*61046927SAndroid Build Coastguard Worker  'nir_remove_tex_shadow.c',
276*61046927SAndroid Build Coastguard Worker  'nir_repair_ssa.c',
277*61046927SAndroid Build Coastguard Worker  'nir_scale_fdiv.c',
278*61046927SAndroid Build Coastguard Worker  'nir_schedule.c',
279*61046927SAndroid Build Coastguard Worker  'nir_schedule.h',
280*61046927SAndroid Build Coastguard Worker  'nir_search.c',
281*61046927SAndroid Build Coastguard Worker  'nir_search.h',
282*61046927SAndroid Build Coastguard Worker  'nir_search_helpers.h',
283*61046927SAndroid Build Coastguard Worker  'nir_serialize.c',
284*61046927SAndroid Build Coastguard Worker  'nir_serialize.h',
285*61046927SAndroid Build Coastguard Worker  'nir_split_64bit_vec3_and_vec4.c',
286*61046927SAndroid Build Coastguard Worker  'nir_split_per_member_structs.c',
287*61046927SAndroid Build Coastguard Worker  'nir_split_var_copies.c',
288*61046927SAndroid Build Coastguard Worker  'nir_split_vars.c',
289*61046927SAndroid Build Coastguard Worker  'nir_sweep.c',
290*61046927SAndroid Build Coastguard Worker  'nir_to_lcssa.c',
291*61046927SAndroid Build Coastguard Worker  'nir_trivialize_registers.c',
292*61046927SAndroid Build Coastguard Worker  'nir_use_dominance.c',
293*61046927SAndroid Build Coastguard Worker  'nir_validate.c',
294*61046927SAndroid Build Coastguard Worker  'nir_vla.h',
295*61046927SAndroid Build Coastguard Worker  'nir_worklist.c',
296*61046927SAndroid Build Coastguard Worker  'nir_worklist.h',
297*61046927SAndroid Build Coastguard Worker  'nir_xfb_info.h',
298*61046927SAndroid Build Coastguard Worker)
299*61046927SAndroid Build Coastguard Worker
300*61046927SAndroid Build Coastguard Worker# When a file is too large, -Wmisleading-indentation will give a note about
301*61046927SAndroid Build Coastguard Worker# not being able to process it, however that is not suppressable by a #pragma
302*61046927SAndroid Build Coastguard Worker# in GCC.  This happens with the generated code in nir_opt_algebraic.c.
303*61046927SAndroid Build Coastguard Worker#
304*61046927SAndroid Build Coastguard Worker# As a workaround, drop the warning for GCC.  Clang builds should cover this.
305*61046927SAndroid Build Coastguard Workerno_misleading_indentation = []
306*61046927SAndroid Build Coastguard Workerif cc.get_id() == 'gcc'
307*61046927SAndroid Build Coastguard Worker  no_misleading_indentation += cc.get_supported_arguments('-Wno-misleading-indentation')
308*61046927SAndroid Build Coastguard Workerendif
309*61046927SAndroid Build Coastguard Worker
310*61046927SAndroid Build Coastguard Worker_libnir = static_library(
311*61046927SAndroid Build Coastguard Worker  'nir',
312*61046927SAndroid Build Coastguard Worker  [files_libnir, nir_opt_algebraic_c, nir_opcodes_c,
313*61046927SAndroid Build Coastguard Worker   nir_opcodes_h, nir_constant_expressions_c, nir_builder_opcodes_h,
314*61046927SAndroid Build Coastguard Worker   nir_intrinsics_c, nir_intrinsics_h, nir_intrinsics_indices_h],
315*61046927SAndroid Build Coastguard Worker  include_directories : [inc_include, inc_src],
316*61046927SAndroid Build Coastguard Worker  c_args : [c_msvc_compat_args, no_override_init_args, no_misleading_indentation],
317*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
318*61046927SAndroid Build Coastguard Worker  dependencies : [idep_compiler, dep_valgrind, idep_mesautil],
319*61046927SAndroid Build Coastguard Worker  build_by_default : false,
320*61046927SAndroid Build Coastguard Worker)
321*61046927SAndroid Build Coastguard Worker
322*61046927SAndroid Build Coastguard Workerinc_nir = include_directories('.')
323*61046927SAndroid Build Coastguard Worker
324*61046927SAndroid Build Coastguard Worker# Headers-only dependency
325*61046927SAndroid Build Coastguard Workeridep_nir_headers = declare_dependency(
326*61046927SAndroid Build Coastguard Worker  sources : [nir_opcodes_h, nir_builder_opcodes_h, nir_intrinsics_h, nir_intrinsics_indices_h,
327*61046927SAndroid Build Coastguard Worker             ir_expression_operation_h, builtin_types_h],
328*61046927SAndroid Build Coastguard Worker  include_directories : [inc_nir, inc_compiler, inc_src, inc_include],
329*61046927SAndroid Build Coastguard Worker)
330*61046927SAndroid Build Coastguard Worker
331*61046927SAndroid Build Coastguard Worker# Also link with nir
332*61046927SAndroid Build Coastguard Workeridep_nir = declare_dependency(
333*61046927SAndroid Build Coastguard Worker  dependencies : [idep_nir_headers, idep_mesautil, idep_compiler],
334*61046927SAndroid Build Coastguard Worker  link_with : _libnir,
335*61046927SAndroid Build Coastguard Worker)
336*61046927SAndroid Build Coastguard Worker
337*61046927SAndroid Build Coastguard Workerif with_tests
338*61046927SAndroid Build Coastguard Worker  if cc.get_id() == 'msvc' and cc.version().version_compare('< 19.29')
339*61046927SAndroid Build Coastguard Worker    msvc_designated_initializer = 'cpp_std=c++latest'
340*61046927SAndroid Build Coastguard Worker  else
341*61046927SAndroid Build Coastguard Worker    msvc_designated_initializer = 'cpp_std=c++20'
342*61046927SAndroid Build Coastguard Worker  endif
343*61046927SAndroid Build Coastguard Worker
344*61046927SAndroid Build Coastguard Worker  msvc_bigobj = []
345*61046927SAndroid Build Coastguard Worker  if cc.get_id() == 'msvc'
346*61046927SAndroid Build Coastguard Worker    msvc_bigobj = '/bigobj'
347*61046927SAndroid Build Coastguard Worker  endif
348*61046927SAndroid Build Coastguard Worker
349*61046927SAndroid Build Coastguard Worker  test(
350*61046927SAndroid Build Coastguard Worker    'nir_tests',
351*61046927SAndroid Build Coastguard Worker    executable(
352*61046927SAndroid Build Coastguard Worker      'nir_tests',
353*61046927SAndroid Build Coastguard Worker      files(
354*61046927SAndroid Build Coastguard Worker        'tests/algebraic_tests.cpp',
355*61046927SAndroid Build Coastguard Worker        'tests/builder_tests.cpp',
356*61046927SAndroid Build Coastguard Worker        'tests/comparison_pre_tests.cpp',
357*61046927SAndroid Build Coastguard Worker        'tests/control_flow_tests.cpp',
358*61046927SAndroid Build Coastguard Worker        'tests/core_tests.cpp',
359*61046927SAndroid Build Coastguard Worker        'tests/dce_tests.cpp',
360*61046927SAndroid Build Coastguard Worker        'tests/format_convert_tests.cpp',
361*61046927SAndroid Build Coastguard Worker        'tests/load_store_vectorizer_tests.cpp',
362*61046927SAndroid Build Coastguard Worker        'tests/loop_analyze_tests.cpp',
363*61046927SAndroid Build Coastguard Worker        'tests/loop_unroll_tests.cpp',
364*61046927SAndroid Build Coastguard Worker        'tests/lower_alu_width_tests.cpp',
365*61046927SAndroid Build Coastguard Worker        'tests/mod_analysis_tests.cpp',
366*61046927SAndroid Build Coastguard Worker        'tests/negative_equal_tests.cpp',
367*61046927SAndroid Build Coastguard Worker        'tests/opt_if_tests.cpp',
368*61046927SAndroid Build Coastguard Worker        'tests/opt_loop_tests.cpp',
369*61046927SAndroid Build Coastguard Worker        'tests/opt_peephole_select.cpp',
370*61046927SAndroid Build Coastguard Worker        'tests/opt_shrink_vectors_tests.cpp',
371*61046927SAndroid Build Coastguard Worker        'tests/opt_varyings_tests_bicm_binary_alu.cpp',
372*61046927SAndroid Build Coastguard Worker        'tests/opt_varyings_tests_dead_input.cpp',
373*61046927SAndroid Build Coastguard Worker        'tests/opt_varyings_tests_dead_output.cpp',
374*61046927SAndroid Build Coastguard Worker        'tests/opt_varyings_tests_dedup.cpp',
375*61046927SAndroid Build Coastguard Worker        'tests/opt_varyings_tests_prop_const.cpp',
376*61046927SAndroid Build Coastguard Worker        'tests/opt_varyings_tests_prop_ubo.cpp',
377*61046927SAndroid Build Coastguard Worker        'tests/opt_varyings_tests_prop_uniform.cpp',
378*61046927SAndroid Build Coastguard Worker        'tests/opt_varyings_tests_prop_uniform_expr.cpp',
379*61046927SAndroid Build Coastguard Worker        'tests/serialize_tests.cpp',
380*61046927SAndroid Build Coastguard Worker        'tests/range_analysis_tests.cpp',
381*61046927SAndroid Build Coastguard Worker        'tests/vars_tests.cpp',
382*61046927SAndroid Build Coastguard Worker      ),
383*61046927SAndroid Build Coastguard Worker      cpp_args : [cpp_msvc_compat_args, msvc_bigobj],
384*61046927SAndroid Build Coastguard Worker      override_options: [msvc_designated_initializer],
385*61046927SAndroid Build Coastguard Worker      gnu_symbol_visibility : 'hidden',
386*61046927SAndroid Build Coastguard Worker      include_directories : [inc_include, inc_src],
387*61046927SAndroid Build Coastguard Worker      dependencies : [dep_thread, idep_gtest, idep_nir, idep_mesautil],
388*61046927SAndroid Build Coastguard Worker    ),
389*61046927SAndroid Build Coastguard Worker    suite : ['compiler', 'nir'],
390*61046927SAndroid Build Coastguard Worker    protocol : 'gtest',
391*61046927SAndroid Build Coastguard Worker  )
392*61046927SAndroid Build Coastguard Worker
393*61046927SAndroid Build Coastguard Worker  test(
394*61046927SAndroid Build Coastguard Worker    'nir_algebraic_parser',
395*61046927SAndroid Build Coastguard Worker    prog_python,
396*61046927SAndroid Build Coastguard Worker    args : [
397*61046927SAndroid Build Coastguard Worker      files('tests/algebraic_parser_test.py')
398*61046927SAndroid Build Coastguard Worker    ],
399*61046927SAndroid Build Coastguard Worker    suite : ['compiler', 'nir'],
400*61046927SAndroid Build Coastguard Worker  )
401*61046927SAndroid Build Coastguard Workerendif
402