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('glcpp') 22 23glsl_parser = custom_target( 24 'glsl_parser', 25 input : 'glsl_parser.yy', 26 output : ['glsl_parser.cpp', 'glsl_parser.h'], 27 command : [ 28 prog_bison, '-o', '@OUTPUT0@', '-p', '_mesa_glsl_', '--defines=@OUTPUT1@', 29 '@INPUT@', 30 ], 31) 32 33glsl_lexer_cpp = custom_target( 34 'glsl_lexer_cpp', 35 input : 'glsl_lexer.ll', 36 output : 'glsl_lexer.cpp', 37 command : [prog_flex, '-o', '@OUTPUT@', '@INPUT@'], 38) 39 40ir_expression_operation_constant_h = custom_target( 41 'ir_expression_operation_constant.h', 42 input : 'ir_expression_operation.py', 43 output : 'ir_expression_operation_constant.h', 44 command : [prog_python2, '@INPUT@', 'constant'], 45 capture : true, 46) 47 48ir_expression_operation_strings_h = custom_target( 49 'ir_expression_operation_strings.h', 50 input : 'ir_expression_operation.py', 51 output : 'ir_expression_operation_strings.h', 52 command : [prog_python2, '@INPUT@', 'strings'], 53 capture : true, 54) 55 56files_libglsl = files( 57 'ast.h', 58 'ast_array_index.cpp', 59 'ast_expr.cpp', 60 'ast_function.cpp', 61 'ast_to_hir.cpp', 62 'ast_type.cpp', 63 'builtin_functions.cpp', 64 'builtin_functions.h', 65 'builtin_int64.h', 66 'builtin_types.cpp', 67 'builtin_variables.cpp', 68 'generate_ir.cpp', 69 'glsl_parser_extras.cpp', 70 'glsl_parser_extras.h', 71 'glsl_symbol_table.cpp', 72 'glsl_symbol_table.h', 73 'glsl_to_nir.cpp', 74 'glsl_to_nir.h', 75 'hir_field_selection.cpp', 76 'ir_array_refcount.cpp', 77 'ir_array_refcount.h', 78 'ir_basic_block.cpp', 79 'ir_basic_block.h', 80 'ir_builder.cpp', 81 'ir_builder.h', 82 'ir_clone.cpp', 83 'ir_constant_expression.cpp', 84 'ir.cpp', 85 'ir.h', 86 'ir_equals.cpp', 87 'ir_expression_flattening.cpp', 88 'ir_expression_flattening.h', 89 'ir_function_can_inline.cpp', 90 'ir_function_detect_recursion.cpp', 91 'ir_function_inlining.h', 92 'ir_function.cpp', 93 'ir_hierarchical_visitor.cpp', 94 'ir_hierarchical_visitor.h', 95 'ir_hv_accept.cpp', 96 'ir_optimization.h', 97 'ir_print_visitor.cpp', 98 'ir_print_visitor.h', 99 'ir_reader.cpp', 100 'ir_reader.h', 101 'ir_rvalue_visitor.cpp', 102 'ir_rvalue_visitor.h', 103 'ir_set_program_inouts.cpp', 104 'ir_uniform.h', 105 'ir_validate.cpp', 106 'ir_variable_refcount.cpp', 107 'ir_variable_refcount.h', 108 'ir_visitor.h', 109 'linker.cpp', 110 'linker.h', 111 'link_atomics.cpp', 112 'link_functions.cpp', 113 'link_interface_blocks.cpp', 114 'link_uniforms.cpp', 115 'link_uniform_initializers.cpp', 116 'link_uniform_block_active_visitor.cpp', 117 'link_uniform_block_active_visitor.h', 118 'link_uniform_blocks.cpp', 119 'link_varyings.cpp', 120 'link_varyings.h', 121 'list.h', 122 'loop_analysis.cpp', 123 'loop_analysis.h', 124 'loop_unroll.cpp', 125 'lower_blend_equation_advanced.cpp', 126 'lower_buffer_access.cpp', 127 'lower_buffer_access.h', 128 'lower_const_arrays_to_uniforms.cpp', 129 'lower_cs_derived.cpp', 130 'lower_discard.cpp', 131 'lower_discard_flow.cpp', 132 'lower_distance.cpp', 133 'lower_if_to_cond_assign.cpp', 134 'lower_instructions.cpp', 135 'lower_int64.cpp', 136 'lower_jumps.cpp', 137 'lower_mat_op_to_vec.cpp', 138 'lower_noise.cpp', 139 'lower_offset_array.cpp', 140 'lower_packed_varyings.cpp', 141 'lower_named_interface_blocks.cpp', 142 'lower_packing_builtins.cpp', 143 'lower_subroutine.cpp', 144 'lower_tess_level.cpp', 145 'lower_texture_projection.cpp', 146 'lower_variable_index_to_cond_assign.cpp', 147 'lower_vec_index_to_cond_assign.cpp', 148 'lower_vec_index_to_swizzle.cpp', 149 'lower_vector.cpp', 150 'lower_vector_derefs.cpp', 151 'lower_vector_insert.cpp', 152 'lower_vertex_id.cpp', 153 'lower_output_reads.cpp', 154 'lower_shared_reference.cpp', 155 'lower_ubo_reference.cpp', 156 'opt_algebraic.cpp', 157 'opt_array_splitting.cpp', 158 'opt_conditional_discard.cpp', 159 'opt_constant_folding.cpp', 160 'opt_constant_propagation.cpp', 161 'opt_constant_variable.cpp', 162 'opt_copy_propagation.cpp', 163 'opt_copy_propagation_elements.cpp', 164 'opt_dead_builtin_variables.cpp', 165 'opt_dead_builtin_varyings.cpp', 166 'opt_dead_code.cpp', 167 'opt_dead_code_local.cpp', 168 'opt_dead_functions.cpp', 169 'opt_flatten_nested_if_blocks.cpp', 170 'opt_flip_matrices.cpp', 171 'opt_function_inlining.cpp', 172 'opt_if_simplification.cpp', 173 'opt_minmax.cpp', 174 'opt_rebalance_tree.cpp', 175 'opt_redundant_jumps.cpp', 176 'opt_structure_splitting.cpp', 177 'opt_swizzle.cpp', 178 'opt_tree_grafting.cpp', 179 'opt_vectorize.cpp', 180 'program.h', 181 'propagate_invariance.cpp', 182 's_expression.cpp', 183 's_expression.h', 184 'string_to_uint_map.cpp', 185 'string_to_uint_map.h', 186 'serialize.cpp', 187 'serialize.h', 188 'shader_cache.cpp', 189 'shader_cache.h', 190) 191 192files_libglsl_standalone = files( 193 'ir_builder_print_visitor.cpp', 194 'ir_builder_print_visitor.h', 195 'opt_add_neg_to_sub.h', 196 'standalone_scaffolding.cpp', 197 'standalone_scaffolding.h', 198 'standalone.cpp', 199 'standalone.h', 200) 201 202libglsl = static_library( 203 'glsl', 204 [files_libglsl, glsl_parser, glsl_lexer_cpp, ir_expression_operation_h, 205 ir_expression_operation_strings_h, ir_expression_operation_constant_h], 206 c_args : [c_vis_args, c_msvc_compat_args, no_override_init_args], 207 cpp_args : [cpp_vis_args, cpp_msvc_compat_args], 208 link_with : libglcpp, 209 include_directories : [inc_common, inc_compiler, inc_nir], 210 dependencies : idep_nir, 211 build_by_default : false, 212) 213 214libglsl_standalone = static_library( 215 'glsl_standalone', 216 [files_libglsl_standalone, ir_expression_operation_h], 217 c_args : [c_vis_args, c_msvc_compat_args, no_override_init_args], 218 cpp_args : [cpp_vis_args, cpp_msvc_compat_args], 219 include_directories : [inc_common], 220 link_with : [libglsl, libglsl_util, libmesa_util], 221 dependencies : [dep_thread], 222 build_by_default : false, 223) 224 225glsl_compiler = executable( 226 'glsl_compiler', 227 'main.cpp', 228 c_args : [c_vis_args, c_msvc_compat_args, no_override_init_args], 229 cpp_args : [cpp_vis_args, cpp_msvc_compat_args], 230 dependencies : [dep_clock, dep_thread], 231 include_directories : [inc_common], 232 link_with : [libglsl_standalone], 233 build_by_default : false, 234) 235 236glsl_test = executable( 237 'glsl_test', 238 ['test.cpp', 'test_optpass.cpp', 'test_optpass.h', 239 ir_expression_operation_h], 240 c_args : [c_vis_args, c_msvc_compat_args, no_override_init_args], 241 cpp_args : [cpp_vis_args, cpp_msvc_compat_args], 242 include_directories : [inc_common], 243 dependencies : [dep_clock, dep_thread], 244 link_with : [libglsl, libglsl_standalone, libglsl_util], 245 build_by_default : false, 246) 247 248if with_tests 249 subdir('tests') 250endif 251