meson.build revision 7e102996
101e04c3fSmrg# Copyright © 2017 Intel Corporation 201e04c3fSmrg 301e04c3fSmrg# Permission is hereby granted, free of charge, to any person obtaining a copy 401e04c3fSmrg# of this software and associated documentation files (the "Software"), to deal 501e04c3fSmrg# in the Software without restriction, including without limitation the rights 601e04c3fSmrg# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 701e04c3fSmrg# copies of the Software, and to permit persons to whom the Software is 801e04c3fSmrg# furnished to do so, subject to the following conditions: 901e04c3fSmrg 1001e04c3fSmrg# The above copyright notice and this permission notice shall be included in 1101e04c3fSmrg# all copies or substantial portions of the Software. 1201e04c3fSmrg 1301e04c3fSmrg# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1401e04c3fSmrg# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1501e04c3fSmrg# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1601e04c3fSmrg# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1701e04c3fSmrg# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1801e04c3fSmrg# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1901e04c3fSmrg# SOFTWARE. 2001e04c3fSmrg 2101e04c3fSmrgsubdir('glcpp') 2201e04c3fSmrg 2301e04c3fSmrgglsl_parser = custom_target( 2401e04c3fSmrg 'glsl_parser', 2501e04c3fSmrg input : 'glsl_parser.yy', 2601e04c3fSmrg output : ['glsl_parser.cpp', 'glsl_parser.h'], 2701e04c3fSmrg command : [ 2801e04c3fSmrg prog_bison, '-o', '@OUTPUT0@', '-p', '_mesa_glsl_', '--defines=@OUTPUT1@', 2901e04c3fSmrg '@INPUT@', 3001e04c3fSmrg ], 3101e04c3fSmrg) 3201e04c3fSmrg 3301e04c3fSmrgglsl_lexer_cpp = custom_target( 3401e04c3fSmrg 'glsl_lexer_cpp', 3501e04c3fSmrg input : 'glsl_lexer.ll', 3601e04c3fSmrg output : 'glsl_lexer.cpp', 3701e04c3fSmrg command : [prog_flex, '-o', '@OUTPUT@', '@INPUT@'], 3801e04c3fSmrg) 3901e04c3fSmrg 4001e04c3fSmrgir_expression_operation_constant_h = custom_target( 4101e04c3fSmrg 'ir_expression_operation_constant.h', 4201e04c3fSmrg input : 'ir_expression_operation.py', 4301e04c3fSmrg output : 'ir_expression_operation_constant.h', 4401e04c3fSmrg command : [prog_python, '@INPUT@', 'constant'], 4501e04c3fSmrg capture : true, 4601e04c3fSmrg) 4701e04c3fSmrg 4801e04c3fSmrgir_expression_operation_strings_h = custom_target( 4901e04c3fSmrg 'ir_expression_operation_strings.h', 5001e04c3fSmrg input : 'ir_expression_operation.py', 5101e04c3fSmrg output : 'ir_expression_operation_strings.h', 5201e04c3fSmrg command : [prog_python, '@INPUT@', 'strings'], 5301e04c3fSmrg capture : true, 5401e04c3fSmrg) 5501e04c3fSmrg 567e102996Smayafloat64_glsl_h = custom_target( 577e102996Smaya 'float64_glsl.h', 587e102996Smaya input : ['xxd.py', 'float64.glsl'], 597e102996Smaya output : 'float64_glsl.h', 607e102996Smaya command : [prog_python, '@INPUT@', '@OUTPUT@', '-n', 'float64_source'], 617e102996Smaya) 627e102996Smaya 6301e04c3fSmrgfiles_libglsl = files( 6401e04c3fSmrg 'ast.h', 6501e04c3fSmrg 'ast_array_index.cpp', 6601e04c3fSmrg 'ast_expr.cpp', 6701e04c3fSmrg 'ast_function.cpp', 6801e04c3fSmrg 'ast_to_hir.cpp', 6901e04c3fSmrg 'ast_type.cpp', 7001e04c3fSmrg 'builtin_functions.cpp', 7101e04c3fSmrg 'builtin_functions.h', 7201e04c3fSmrg 'builtin_int64.h', 7301e04c3fSmrg 'builtin_types.cpp', 7401e04c3fSmrg 'builtin_variables.cpp', 7501e04c3fSmrg 'generate_ir.cpp', 7601e04c3fSmrg 'gl_nir_lower_atomics.c', 777e102996Smaya 'gl_nir_lower_bindless_images.c', 787e102996Smaya 'gl_nir_lower_buffers.c', 7901e04c3fSmrg 'gl_nir_lower_samplers.c', 8001e04c3fSmrg 'gl_nir_lower_samplers_as_deref.c', 8101e04c3fSmrg 'gl_nir_link_atomics.c', 8201e04c3fSmrg 'gl_nir_link_uniform_initializers.c', 8301e04c3fSmrg 'gl_nir_link_uniforms.c', 8401e04c3fSmrg 'gl_nir_link_xfb.c', 8501e04c3fSmrg 'gl_nir_linker.c', 8601e04c3fSmrg 'gl_nir_linker.h', 8701e04c3fSmrg 'gl_nir.h', 8801e04c3fSmrg 'glsl_parser_extras.cpp', 8901e04c3fSmrg 'glsl_parser_extras.h', 9001e04c3fSmrg 'glsl_symbol_table.cpp', 9101e04c3fSmrg 'glsl_symbol_table.h', 9201e04c3fSmrg 'glsl_to_nir.cpp', 9301e04c3fSmrg 'glsl_to_nir.h', 9401e04c3fSmrg 'hir_field_selection.cpp', 9501e04c3fSmrg 'ir_array_refcount.cpp', 9601e04c3fSmrg 'ir_array_refcount.h', 9701e04c3fSmrg 'ir_basic_block.cpp', 9801e04c3fSmrg 'ir_basic_block.h', 9901e04c3fSmrg 'ir_builder.cpp', 10001e04c3fSmrg 'ir_builder.h', 10101e04c3fSmrg 'ir_clone.cpp', 10201e04c3fSmrg 'ir_constant_expression.cpp', 10301e04c3fSmrg 'ir.cpp', 10401e04c3fSmrg 'ir.h', 10501e04c3fSmrg 'ir_equals.cpp', 10601e04c3fSmrg 'ir_expression_flattening.cpp', 10701e04c3fSmrg 'ir_expression_flattening.h', 10801e04c3fSmrg 'ir_function_can_inline.cpp', 10901e04c3fSmrg 'ir_function_detect_recursion.cpp', 11001e04c3fSmrg 'ir_function_inlining.h', 11101e04c3fSmrg 'ir_function.cpp', 11201e04c3fSmrg 'ir_hierarchical_visitor.cpp', 11301e04c3fSmrg 'ir_hierarchical_visitor.h', 11401e04c3fSmrg 'ir_hv_accept.cpp', 11501e04c3fSmrg 'ir_optimization.h', 11601e04c3fSmrg 'ir_print_visitor.cpp', 11701e04c3fSmrg 'ir_print_visitor.h', 11801e04c3fSmrg 'ir_reader.cpp', 11901e04c3fSmrg 'ir_reader.h', 12001e04c3fSmrg 'ir_rvalue_visitor.cpp', 12101e04c3fSmrg 'ir_rvalue_visitor.h', 12201e04c3fSmrg 'ir_set_program_inouts.cpp', 12301e04c3fSmrg 'ir_uniform.h', 12401e04c3fSmrg 'ir_validate.cpp', 12501e04c3fSmrg 'ir_variable_refcount.cpp', 12601e04c3fSmrg 'ir_variable_refcount.h', 12701e04c3fSmrg 'ir_visitor.h', 12801e04c3fSmrg 'linker.cpp', 12901e04c3fSmrg 'linker.h', 13001e04c3fSmrg 'linker_util.h', 13101e04c3fSmrg 'linker_util.cpp', 13201e04c3fSmrg 'link_atomics.cpp', 13301e04c3fSmrg 'link_functions.cpp', 13401e04c3fSmrg 'link_interface_blocks.cpp', 13501e04c3fSmrg 'link_uniforms.cpp', 13601e04c3fSmrg 'link_uniform_initializers.cpp', 13701e04c3fSmrg 'link_uniform_block_active_visitor.cpp', 13801e04c3fSmrg 'link_uniform_block_active_visitor.h', 13901e04c3fSmrg 'link_uniform_blocks.cpp', 14001e04c3fSmrg 'link_varyings.cpp', 14101e04c3fSmrg 'link_varyings.h', 14201e04c3fSmrg 'list.h', 14301e04c3fSmrg 'loop_analysis.cpp', 14401e04c3fSmrg 'loop_analysis.h', 14501e04c3fSmrg 'loop_unroll.cpp', 14601e04c3fSmrg 'lower_blend_equation_advanced.cpp', 14701e04c3fSmrg 'lower_buffer_access.cpp', 14801e04c3fSmrg 'lower_buffer_access.h', 14901e04c3fSmrg 'lower_const_arrays_to_uniforms.cpp', 15001e04c3fSmrg 'lower_cs_derived.cpp', 15101e04c3fSmrg 'lower_discard.cpp', 15201e04c3fSmrg 'lower_discard_flow.cpp', 15301e04c3fSmrg 'lower_distance.cpp', 15401e04c3fSmrg 'lower_if_to_cond_assign.cpp', 15501e04c3fSmrg 'lower_instructions.cpp', 15601e04c3fSmrg 'lower_int64.cpp', 15701e04c3fSmrg 'lower_jumps.cpp', 15801e04c3fSmrg 'lower_mat_op_to_vec.cpp', 15901e04c3fSmrg 'lower_noise.cpp', 16001e04c3fSmrg 'lower_offset_array.cpp', 16101e04c3fSmrg 'lower_packed_varyings.cpp', 16201e04c3fSmrg 'lower_named_interface_blocks.cpp', 16301e04c3fSmrg 'lower_packing_builtins.cpp', 16401e04c3fSmrg 'lower_subroutine.cpp', 16501e04c3fSmrg 'lower_tess_level.cpp', 16601e04c3fSmrg 'lower_texture_projection.cpp', 16701e04c3fSmrg 'lower_variable_index_to_cond_assign.cpp', 16801e04c3fSmrg 'lower_vec_index_to_cond_assign.cpp', 16901e04c3fSmrg 'lower_vec_index_to_swizzle.cpp', 17001e04c3fSmrg 'lower_vector.cpp', 17101e04c3fSmrg 'lower_vector_derefs.cpp', 17201e04c3fSmrg 'lower_vector_insert.cpp', 17301e04c3fSmrg 'lower_vertex_id.cpp', 17401e04c3fSmrg 'lower_output_reads.cpp', 17501e04c3fSmrg 'lower_shared_reference.cpp', 17601e04c3fSmrg 'lower_ubo_reference.cpp', 17701e04c3fSmrg 'opt_algebraic.cpp', 17801e04c3fSmrg 'opt_array_splitting.cpp', 17901e04c3fSmrg 'opt_conditional_discard.cpp', 18001e04c3fSmrg 'opt_constant_folding.cpp', 18101e04c3fSmrg 'opt_constant_propagation.cpp', 18201e04c3fSmrg 'opt_constant_variable.cpp', 18301e04c3fSmrg 'opt_copy_propagation_elements.cpp', 18401e04c3fSmrg 'opt_dead_builtin_variables.cpp', 18501e04c3fSmrg 'opt_dead_builtin_varyings.cpp', 18601e04c3fSmrg 'opt_dead_code.cpp', 18701e04c3fSmrg 'opt_dead_code_local.cpp', 18801e04c3fSmrg 'opt_dead_functions.cpp', 18901e04c3fSmrg 'opt_flatten_nested_if_blocks.cpp', 19001e04c3fSmrg 'opt_flip_matrices.cpp', 19101e04c3fSmrg 'opt_function_inlining.cpp', 19201e04c3fSmrg 'opt_if_simplification.cpp', 19301e04c3fSmrg 'opt_minmax.cpp', 19401e04c3fSmrg 'opt_rebalance_tree.cpp', 19501e04c3fSmrg 'opt_redundant_jumps.cpp', 19601e04c3fSmrg 'opt_structure_splitting.cpp', 19701e04c3fSmrg 'opt_swizzle.cpp', 19801e04c3fSmrg 'opt_tree_grafting.cpp', 19901e04c3fSmrg 'opt_vectorize.cpp', 20001e04c3fSmrg 'program.h', 20101e04c3fSmrg 'propagate_invariance.cpp', 20201e04c3fSmrg 's_expression.cpp', 20301e04c3fSmrg 's_expression.h', 20401e04c3fSmrg 'string_to_uint_map.cpp', 20501e04c3fSmrg 'string_to_uint_map.h', 20601e04c3fSmrg 'serialize.cpp', 20701e04c3fSmrg 'serialize.h', 20801e04c3fSmrg 'shader_cache.cpp', 20901e04c3fSmrg 'shader_cache.h', 21001e04c3fSmrg) 21101e04c3fSmrg 21201e04c3fSmrgfiles_libglsl_standalone = files( 21301e04c3fSmrg 'ir_builder_print_visitor.cpp', 21401e04c3fSmrg 'ir_builder_print_visitor.h', 21501e04c3fSmrg 'opt_add_neg_to_sub.h', 21601e04c3fSmrg 'standalone_scaffolding.cpp', 21701e04c3fSmrg 'standalone_scaffolding.h', 21801e04c3fSmrg 'standalone.cpp', 21901e04c3fSmrg 'standalone.h', 22001e04c3fSmrg) 22101e04c3fSmrg 22201e04c3fSmrglibglsl = static_library( 22301e04c3fSmrg 'glsl', 22401e04c3fSmrg [files_libglsl, glsl_parser, glsl_lexer_cpp, ir_expression_operation_h, 2257e102996Smaya ir_expression_operation_strings_h, ir_expression_operation_constant_h, 2267e102996Smaya float64_glsl_h], 22701e04c3fSmrg c_args : [c_vis_args, c_msvc_compat_args, no_override_init_args], 22801e04c3fSmrg cpp_args : [cpp_vis_args, cpp_msvc_compat_args], 22901e04c3fSmrg link_with : libglcpp, 23001e04c3fSmrg include_directories : [inc_common, inc_compiler, inc_nir], 23101e04c3fSmrg dependencies : idep_nir, 23201e04c3fSmrg build_by_default : false, 23301e04c3fSmrg) 23401e04c3fSmrg 23501e04c3fSmrglibglsl_standalone = static_library( 23601e04c3fSmrg 'glsl_standalone', 23701e04c3fSmrg [files_libglsl_standalone, ir_expression_operation_h], 23801e04c3fSmrg c_args : [c_vis_args, c_msvc_compat_args, no_override_init_args], 23901e04c3fSmrg cpp_args : [cpp_vis_args, cpp_msvc_compat_args], 24001e04c3fSmrg include_directories : [inc_common], 24101e04c3fSmrg link_with : [libglsl, libglsl_util, libmesa_util], 24201e04c3fSmrg dependencies : [dep_thread], 24301e04c3fSmrg build_by_default : false, 24401e04c3fSmrg) 24501e04c3fSmrg 24601e04c3fSmrgglsl_compiler = executable( 24701e04c3fSmrg 'glsl_compiler', 24801e04c3fSmrg 'main.cpp', 24901e04c3fSmrg c_args : [c_vis_args, c_msvc_compat_args, no_override_init_args], 25001e04c3fSmrg cpp_args : [cpp_vis_args, cpp_msvc_compat_args], 25101e04c3fSmrg dependencies : [dep_clock, dep_thread], 25201e04c3fSmrg include_directories : [inc_common], 25301e04c3fSmrg link_with : [libglsl_standalone], 25401e04c3fSmrg build_by_default : with_tools.contains('glsl'), 25501e04c3fSmrg install : with_tools.contains('glsl'), 25601e04c3fSmrg) 25701e04c3fSmrg 25801e04c3fSmrgglsl_test = executable( 25901e04c3fSmrg 'glsl_test', 26001e04c3fSmrg ['test.cpp', 'test_optpass.cpp', 'test_optpass.h', 26101e04c3fSmrg ir_expression_operation_h], 26201e04c3fSmrg c_args : [c_vis_args, c_msvc_compat_args, no_override_init_args], 26301e04c3fSmrg cpp_args : [cpp_vis_args, cpp_msvc_compat_args], 26401e04c3fSmrg include_directories : [inc_common], 26501e04c3fSmrg dependencies : [dep_clock, dep_thread], 26601e04c3fSmrg link_with : [libglsl, libglsl_standalone, libglsl_util], 26701e04c3fSmrg build_by_default : with_tools.contains('glsl'), 26801e04c3fSmrg install : with_tools.contains('glsl'), 26901e04c3fSmrg) 27001e04c3fSmrg 27101e04c3fSmrgif with_any_opengl and with_tests 27201e04c3fSmrg subdir('tests') 27301e04c3fSmrgendif 274