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