xref: /aosp_15_r20/external/mesa3d/src/compiler/glsl/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 Workerlibglsl_util = static_library(
5*61046927SAndroid Build Coastguard Worker  'glsl_util',
6*61046927SAndroid Build Coastguard Worker  glsl_util_files,
7*61046927SAndroid Build Coastguard Worker  include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
8*61046927SAndroid Build Coastguard Worker  dependencies : [dep_valgrind, idep_mesautil],
9*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
10*61046927SAndroid Build Coastguard Worker  build_by_default : false,
11*61046927SAndroid Build Coastguard Worker)
12*61046927SAndroid Build Coastguard Worker
13*61046927SAndroid Build Coastguard Workersubdir('glcpp')
14*61046927SAndroid Build Coastguard Worker
15*61046927SAndroid Build Coastguard Workerbison_command = []
16*61046927SAndroid Build Coastguard Workerif yacc_is_bison
17*61046927SAndroid Build Coastguard Worker  bison_command = [
18*61046927SAndroid Build Coastguard Worker    prog_bison, '-o', '@OUTPUT0@', '-p', '_mesa_glsl_', '--defines=@OUTPUT1@',
19*61046927SAndroid Build Coastguard Worker    '@INPUT@',
20*61046927SAndroid Build Coastguard Worker  ]
21*61046927SAndroid Build Coastguard Workerelse
22*61046927SAndroid Build Coastguard Worker  bison_command = [
23*61046927SAndroid Build Coastguard Worker    prog_bison, '-o', '@OUTPUT0@', '-p', '_mesa_glsl_', '-H', '@OUTPUT1@',
24*61046927SAndroid Build Coastguard Worker    '@INPUT@',
25*61046927SAndroid Build Coastguard Worker  ]
26*61046927SAndroid Build Coastguard Workerendif
27*61046927SAndroid Build Coastguard Worker
28*61046927SAndroid Build Coastguard Workerglsl_parser = custom_target(
29*61046927SAndroid Build Coastguard Worker  'glsl_parser',
30*61046927SAndroid Build Coastguard Worker  input : 'glsl_parser.yy',
31*61046927SAndroid Build Coastguard Worker  output : ['glsl_parser.cpp', 'glsl_parser.h'],
32*61046927SAndroid Build Coastguard Worker  command : bison_command
33*61046927SAndroid Build Coastguard Worker)
34*61046927SAndroid Build Coastguard Worker
35*61046927SAndroid Build Coastguard Workerglsl_lexer_cpp = custom_target(
36*61046927SAndroid Build Coastguard Worker  'glsl_lexer_cpp',
37*61046927SAndroid Build Coastguard Worker  input : 'glsl_lexer.ll',
38*61046927SAndroid Build Coastguard Worker  output : 'glsl_lexer.cpp',
39*61046927SAndroid Build Coastguard Worker  command : [prog_flex_cpp, '-o', '@OUTPUT@', '@INPUT@'],
40*61046927SAndroid Build Coastguard Worker)
41*61046927SAndroid Build Coastguard Worker
42*61046927SAndroid Build Coastguard Workerir_expression_operation_constant_h = custom_target(
43*61046927SAndroid Build Coastguard Worker  'ir_expression_operation_constant.h',
44*61046927SAndroid Build Coastguard Worker  input : 'ir_expression_operation.py',
45*61046927SAndroid Build Coastguard Worker  output : 'ir_expression_operation_constant.h',
46*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@', 'constant'],
47*61046927SAndroid Build Coastguard Worker  capture : true,
48*61046927SAndroid Build Coastguard Worker)
49*61046927SAndroid Build Coastguard Worker
50*61046927SAndroid Build Coastguard Workerir_expression_operation_strings_h = custom_target(
51*61046927SAndroid Build Coastguard Worker  'ir_expression_operation_strings.h',
52*61046927SAndroid Build Coastguard Worker  input : 'ir_expression_operation.py',
53*61046927SAndroid Build Coastguard Worker  output : 'ir_expression_operation_strings.h',
54*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@', 'strings'],
55*61046927SAndroid Build Coastguard Worker  capture : true,
56*61046927SAndroid Build Coastguard Worker)
57*61046927SAndroid Build Coastguard Worker
58*61046927SAndroid Build Coastguard Workerfloat64_glsl_h = custom_target(
59*61046927SAndroid Build Coastguard Worker  'float64_glsl.h',
60*61046927SAndroid Build Coastguard Worker  input : [files_xxd, 'float64.glsl'],
61*61046927SAndroid Build Coastguard Worker  output : 'float64_glsl.h',
62*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@', '@OUTPUT@', '-n', 'float64_source'],
63*61046927SAndroid Build Coastguard Worker)
64*61046927SAndroid Build Coastguard Worker
65*61046927SAndroid Build Coastguard Workercross_platform_settings_piece_all_h = custom_target(
66*61046927SAndroid Build Coastguard Worker  'cross_platform_settings_piece_all.h',
67*61046927SAndroid Build Coastguard Worker  input : [files_xxd, 'CrossPlatformSettings_piece_all.glsl'],
68*61046927SAndroid Build Coastguard Worker  output : 'cross_platform_settings_piece_all.h',
69*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@', '@OUTPUT@', '-n', 'cross_platform_settings_piece_all_header'],
70*61046927SAndroid Build Coastguard Worker)
71*61046927SAndroid Build Coastguard Worker
72*61046927SAndroid Build Coastguard Workerbc1_glsl_h = custom_target(
73*61046927SAndroid Build Coastguard Worker  'bc1_glsl.h',
74*61046927SAndroid Build Coastguard Worker  input : [files_xxd, 'bc1.glsl'],
75*61046927SAndroid Build Coastguard Worker  output : 'bc1_glsl.h',
76*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@', '@OUTPUT@', '-n', 'bc1_source'],
77*61046927SAndroid Build Coastguard Worker)
78*61046927SAndroid Build Coastguard Worker
79*61046927SAndroid Build Coastguard Workerbc4_glsl_h = custom_target(
80*61046927SAndroid Build Coastguard Worker  'bc4_glsl.h',
81*61046927SAndroid Build Coastguard Worker  input : [files_xxd, 'bc4.glsl'],
82*61046927SAndroid Build Coastguard Worker  output : 'bc4_glsl.h',
83*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@', '@OUTPUT@', '-n', 'bc4_source'],
84*61046927SAndroid Build Coastguard Worker)
85*61046927SAndroid Build Coastguard Worker
86*61046927SAndroid Build Coastguard Workeretc2_rgba_stitch_glsl_h = custom_target(
87*61046927SAndroid Build Coastguard Worker  'etc2_rgba_stitch_glsl.h',
88*61046927SAndroid Build Coastguard Worker  input : [files_xxd, 'etc2_rgba_stitch.glsl'],
89*61046927SAndroid Build Coastguard Worker  output : 'etc2_rgba_stitch_glsl.h',
90*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@', '@OUTPUT@', '-n', 'etc2_rgba_stitch_source'],
91*61046927SAndroid Build Coastguard Worker)
92*61046927SAndroid Build Coastguard Worker
93*61046927SAndroid Build Coastguard Workerastc_glsl_h = custom_target(
94*61046927SAndroid Build Coastguard Worker  'astc_glsl.h',
95*61046927SAndroid Build Coastguard Worker  input : [files_xxd, 'astc_decoder.glsl'],
96*61046927SAndroid Build Coastguard Worker  output : 'astc_glsl.h',
97*61046927SAndroid Build Coastguard Worker  command : [prog_python, '@INPUT@', '@OUTPUT@', '-n', 'astc_source'],
98*61046927SAndroid Build Coastguard Worker)
99*61046927SAndroid Build Coastguard Worker
100*61046927SAndroid Build Coastguard Workerfiles_libglsl = files(
101*61046927SAndroid Build Coastguard Worker  'ast.h',
102*61046927SAndroid Build Coastguard Worker  'ast_array_index.cpp',
103*61046927SAndroid Build Coastguard Worker  'ast_expr.cpp',
104*61046927SAndroid Build Coastguard Worker  'ast_function.cpp',
105*61046927SAndroid Build Coastguard Worker  'ast_to_hir.cpp',
106*61046927SAndroid Build Coastguard Worker  'ast_type.cpp',
107*61046927SAndroid Build Coastguard Worker  'builtin_functions.cpp',
108*61046927SAndroid Build Coastguard Worker  'builtin_functions.h',
109*61046927SAndroid Build Coastguard Worker  'builtin_types.cpp',
110*61046927SAndroid Build Coastguard Worker  'builtin_variables.cpp',
111*61046927SAndroid Build Coastguard Worker  'gl_nir_detect_function_recursion.c',
112*61046927SAndroid Build Coastguard Worker  'gl_nir_lower_atomics.c',
113*61046927SAndroid Build Coastguard Worker  'gl_nir_lower_images.c',
114*61046927SAndroid Build Coastguard Worker  'gl_nir_lower_blend_equation_advanced.c',
115*61046927SAndroid Build Coastguard Worker  'gl_nir_lower_buffers.c',
116*61046927SAndroid Build Coastguard Worker  'gl_nir_lower_discard_flow.c',
117*61046927SAndroid Build Coastguard Worker  'gl_nir_lower_named_interface_blocks.c',
118*61046927SAndroid Build Coastguard Worker  'gl_nir_lower_packed_varyings.c',
119*61046927SAndroid Build Coastguard Worker  'gl_nir_lower_samplers.c',
120*61046927SAndroid Build Coastguard Worker  'gl_nir_lower_samplers_as_deref.c',
121*61046927SAndroid Build Coastguard Worker  'gl_nir_lower_xfb_varying.c',
122*61046927SAndroid Build Coastguard Worker  'gl_nir_link_atomics.c',
123*61046927SAndroid Build Coastguard Worker  'gl_nir_link_interface_blocks.c',
124*61046927SAndroid Build Coastguard Worker  'gl_nir_link_uniform_blocks.c',
125*61046927SAndroid Build Coastguard Worker  'gl_nir_link_uniform_initializers.c',
126*61046927SAndroid Build Coastguard Worker  'gl_nir_link_uniforms.c',
127*61046927SAndroid Build Coastguard Worker  'gl_nir_link_varyings.c',
128*61046927SAndroid Build Coastguard Worker  'gl_nir_link_varyings.h',
129*61046927SAndroid Build Coastguard Worker  'gl_nir_link_xfb.c',
130*61046927SAndroid Build Coastguard Worker  'gl_nir_linker.c',
131*61046927SAndroid Build Coastguard Worker  'gl_nir_linker.h',
132*61046927SAndroid Build Coastguard Worker  'gl_nir_opt_dead_builtin_varyings.c',
133*61046927SAndroid Build Coastguard Worker  'gl_nir.h',
134*61046927SAndroid Build Coastguard Worker  'glsl_parser_extras.cpp',
135*61046927SAndroid Build Coastguard Worker  'glsl_parser_extras.h',
136*61046927SAndroid Build Coastguard Worker  'glsl_symbol_table.cpp',
137*61046927SAndroid Build Coastguard Worker  'glsl_symbol_table.h',
138*61046927SAndroid Build Coastguard Worker  'glsl_to_nir.cpp',
139*61046927SAndroid Build Coastguard Worker  'glsl_to_nir.h',
140*61046927SAndroid Build Coastguard Worker  'hir_field_selection.cpp',
141*61046927SAndroid Build Coastguard Worker  'ir_array_refcount.cpp',
142*61046927SAndroid Build Coastguard Worker  'ir_array_refcount.h',
143*61046927SAndroid Build Coastguard Worker  'ir_basic_block.cpp',
144*61046927SAndroid Build Coastguard Worker  'ir_basic_block.h',
145*61046927SAndroid Build Coastguard Worker  'ir_builder.cpp',
146*61046927SAndroid Build Coastguard Worker  'ir_builder.h',
147*61046927SAndroid Build Coastguard Worker  'ir_clone.cpp',
148*61046927SAndroid Build Coastguard Worker  'ir_constant_expression.cpp',
149*61046927SAndroid Build Coastguard Worker  'ir.cpp',
150*61046927SAndroid Build Coastguard Worker  'ir.h',
151*61046927SAndroid Build Coastguard Worker  'ir_equals.cpp',
152*61046927SAndroid Build Coastguard Worker  'ir_expression_flattening.cpp',
153*61046927SAndroid Build Coastguard Worker  'ir_expression_flattening.h',
154*61046927SAndroid Build Coastguard Worker  'ir_function_detect_recursion.cpp',
155*61046927SAndroid Build Coastguard Worker  'ir_function.cpp',
156*61046927SAndroid Build Coastguard Worker  'ir_hierarchical_visitor.cpp',
157*61046927SAndroid Build Coastguard Worker  'ir_hierarchical_visitor.h',
158*61046927SAndroid Build Coastguard Worker  'ir_hv_accept.cpp',
159*61046927SAndroid Build Coastguard Worker  'ir_optimization.h',
160*61046927SAndroid Build Coastguard Worker  'ir_print_visitor.cpp',
161*61046927SAndroid Build Coastguard Worker  'ir_print_visitor.h',
162*61046927SAndroid Build Coastguard Worker  'ir_reader.cpp',
163*61046927SAndroid Build Coastguard Worker  'ir_reader.h',
164*61046927SAndroid Build Coastguard Worker  'ir_rvalue_visitor.cpp',
165*61046927SAndroid Build Coastguard Worker  'ir_rvalue_visitor.h',
166*61046927SAndroid Build Coastguard Worker  'ir_uniform.h',
167*61046927SAndroid Build Coastguard Worker  'ir_validate.cpp',
168*61046927SAndroid Build Coastguard Worker  'ir_variable_refcount.cpp',
169*61046927SAndroid Build Coastguard Worker  'ir_variable_refcount.h',
170*61046927SAndroid Build Coastguard Worker  'ir_visitor.h',
171*61046927SAndroid Build Coastguard Worker  'linker.cpp',
172*61046927SAndroid Build Coastguard Worker  'linker.h',
173*61046927SAndroid Build Coastguard Worker  'linker_util.h',
174*61046927SAndroid Build Coastguard Worker  'linker_util.cpp',
175*61046927SAndroid Build Coastguard Worker  'link_functions.cpp',
176*61046927SAndroid Build Coastguard Worker  'link_interface_blocks.cpp',
177*61046927SAndroid Build Coastguard Worker  'list.h',
178*61046927SAndroid Build Coastguard Worker  'lower_builtins.cpp',
179*61046927SAndroid Build Coastguard Worker  'lower_instructions.cpp',
180*61046927SAndroid Build Coastguard Worker  'lower_jumps.cpp',
181*61046927SAndroid Build Coastguard Worker  'lower_mat_op_to_vec.cpp',
182*61046927SAndroid Build Coastguard Worker  'lower_packing_builtins.cpp',
183*61046927SAndroid Build Coastguard Worker  'lower_precision.cpp',
184*61046927SAndroid Build Coastguard Worker  'lower_subroutine.cpp',
185*61046927SAndroid Build Coastguard Worker  'lower_vec_index_to_cond_assign.cpp',
186*61046927SAndroid Build Coastguard Worker  'lower_vector_derefs.cpp',
187*61046927SAndroid Build Coastguard Worker  'opt_algebraic.cpp',
188*61046927SAndroid Build Coastguard Worker  'opt_dead_builtin_variables.cpp',
189*61046927SAndroid Build Coastguard Worker  'opt_dead_code.cpp',
190*61046927SAndroid Build Coastguard Worker  'opt_dead_code_local.cpp',
191*61046927SAndroid Build Coastguard Worker  'opt_flatten_nested_if_blocks.cpp',
192*61046927SAndroid Build Coastguard Worker  'opt_flip_matrices.cpp',
193*61046927SAndroid Build Coastguard Worker  'opt_function_inlining.cpp',
194*61046927SAndroid Build Coastguard Worker  'opt_if_simplification.cpp',
195*61046927SAndroid Build Coastguard Worker  'opt_minmax.cpp',
196*61046927SAndroid Build Coastguard Worker  'opt_rebalance_tree.cpp',
197*61046927SAndroid Build Coastguard Worker  'opt_tree_grafting.cpp',
198*61046927SAndroid Build Coastguard Worker  'program.h',
199*61046927SAndroid Build Coastguard Worker  'propagate_invariance.cpp',
200*61046927SAndroid Build Coastguard Worker  's_expression.cpp',
201*61046927SAndroid Build Coastguard Worker  's_expression.h',
202*61046927SAndroid Build Coastguard Worker  'string_to_uint_map.cpp',
203*61046927SAndroid Build Coastguard Worker  'string_to_uint_map.h',
204*61046927SAndroid Build Coastguard Worker  'serialize.cpp',
205*61046927SAndroid Build Coastguard Worker  'serialize.h',
206*61046927SAndroid Build Coastguard Worker  'shader_cache.cpp',
207*61046927SAndroid Build Coastguard Worker  'shader_cache.h',
208*61046927SAndroid Build Coastguard Worker)
209*61046927SAndroid Build Coastguard Worker
210*61046927SAndroid Build Coastguard Workerfiles_libglsl_standalone = files(
211*61046927SAndroid Build Coastguard Worker  'standalone_scaffolding.cpp',
212*61046927SAndroid Build Coastguard Worker  'standalone_scaffolding.h',
213*61046927SAndroid Build Coastguard Worker  'standalone.cpp',
214*61046927SAndroid Build Coastguard Worker  'standalone.h',
215*61046927SAndroid Build Coastguard Worker)
216*61046927SAndroid Build Coastguard Worker
217*61046927SAndroid Build Coastguard Workerlibglsl_headers = [
218*61046927SAndroid Build Coastguard Worker  ir_expression_operation_h, cross_platform_settings_piece_all_h, bc1_glsl_h,
219*61046927SAndroid Build Coastguard Worker  bc4_glsl_h, etc2_rgba_stitch_glsl_h, astc_glsl_h
220*61046927SAndroid Build Coastguard Worker]
221*61046927SAndroid Build Coastguard Worker
222*61046927SAndroid Build Coastguard Workerlibglsl = static_library(
223*61046927SAndroid Build Coastguard Worker  'glsl',
224*61046927SAndroid Build Coastguard Worker  [files_libglsl, glsl_parser, glsl_lexer_cpp, libglsl_headers,
225*61046927SAndroid Build Coastguard Worker   ir_expression_operation_strings_h, ir_expression_operation_constant_h,
226*61046927SAndroid Build Coastguard Worker   float64_glsl_h],
227*61046927SAndroid Build Coastguard Worker  c_args : [c_msvc_compat_args, no_override_init_args],
228*61046927SAndroid Build Coastguard Worker  cpp_args : [cpp_msvc_compat_args],
229*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
230*61046927SAndroid Build Coastguard Worker  link_with : libglcpp,
231*61046927SAndroid Build Coastguard Worker  include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
232*61046927SAndroid Build Coastguard Worker  dependencies : [idep_nir, idep_mesautil],
233*61046927SAndroid Build Coastguard Worker  build_by_default : false,
234*61046927SAndroid Build Coastguard Worker)
235*61046927SAndroid Build Coastguard Worker
236*61046927SAndroid Build Coastguard Workeridep_libglsl = declare_dependency(
237*61046927SAndroid Build Coastguard Worker  sources: libglsl_headers,
238*61046927SAndroid Build Coastguard Worker  link_with: libglsl,
239*61046927SAndroid Build Coastguard Worker)
240*61046927SAndroid Build Coastguard Worker
241*61046927SAndroid Build Coastguard Workerlibglsl_standalone = static_library(
242*61046927SAndroid Build Coastguard Worker  'glsl_standalone',
243*61046927SAndroid Build Coastguard Worker  [files_libglsl_standalone, ir_expression_operation_h],
244*61046927SAndroid Build Coastguard Worker  c_args : [c_msvc_compat_args, no_override_init_args],
245*61046927SAndroid Build Coastguard Worker  cpp_args : [cpp_msvc_compat_args],
246*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
247*61046927SAndroid Build Coastguard Worker  include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
248*61046927SAndroid Build Coastguard Worker  link_with : [libglsl, libglsl_util, libglcpp_standalone],
249*61046927SAndroid Build Coastguard Worker  dependencies : [idep_mesautil, idep_getopt, idep_compiler],
250*61046927SAndroid Build Coastguard Worker  build_by_default : false,
251*61046927SAndroid Build Coastguard Worker)
252*61046927SAndroid Build Coastguard Worker
253*61046927SAndroid Build Coastguard Workerglsl_compiler = executable(
254*61046927SAndroid Build Coastguard Worker  'glsl_compiler',
255*61046927SAndroid Build Coastguard Worker  'main.cpp',
256*61046927SAndroid Build Coastguard Worker  c_args : [c_msvc_compat_args, no_override_init_args],
257*61046927SAndroid Build Coastguard Worker  cpp_args : [cpp_msvc_compat_args],
258*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
259*61046927SAndroid Build Coastguard Worker  dependencies : [dep_clock, dep_thread, idep_getopt, idep_mesautil],
260*61046927SAndroid Build Coastguard Worker  include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
261*61046927SAndroid Build Coastguard Worker  link_with : [libglsl_standalone],
262*61046927SAndroid Build Coastguard Worker  build_by_default : with_tools.contains('glsl'),
263*61046927SAndroid Build Coastguard Worker  install : with_tools.contains('glsl'),
264*61046927SAndroid Build Coastguard Worker)
265*61046927SAndroid Build Coastguard Worker
266*61046927SAndroid Build Coastguard Workerglsl_test = executable(
267*61046927SAndroid Build Coastguard Worker  'glsl_test',
268*61046927SAndroid Build Coastguard Worker  ['test.cpp', 'test_optpass.cpp', 'test_optpass.h',
269*61046927SAndroid Build Coastguard Worker   ir_expression_operation_h],
270*61046927SAndroid Build Coastguard Worker  c_args : [c_msvc_compat_args, no_override_init_args],
271*61046927SAndroid Build Coastguard Worker  cpp_args : [cpp_msvc_compat_args],
272*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
273*61046927SAndroid Build Coastguard Worker  include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
274*61046927SAndroid Build Coastguard Worker  dependencies : [dep_clock, dep_thread, idep_getopt, idep_mesautil, idep_compiler],
275*61046927SAndroid Build Coastguard Worker  link_with : [libglsl, libglsl_standalone, libglsl_util],
276*61046927SAndroid Build Coastguard Worker  build_by_default : with_tools.contains('glsl'),
277*61046927SAndroid Build Coastguard Worker  install : with_tools.contains('glsl'),
278*61046927SAndroid Build Coastguard Worker)
279*61046927SAndroid Build Coastguard Worker
280*61046927SAndroid Build Coastguard Workerif with_any_opengl and with_tests
281*61046927SAndroid Build Coastguard Worker  subdir('tests')
282*61046927SAndroid Build Coastguard Workerendif
283