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 Workerbison_command = [] 5*61046927SAndroid Build Coastguard Workerif yacc_is_bison 6*61046927SAndroid Build Coastguard Worker bison_command = [ 7*61046927SAndroid Build Coastguard Worker prog_bison, '-o', '@OUTPUT0@', '-p', 'glcpp_parser_', 8*61046927SAndroid Build Coastguard Worker '--defines=@OUTPUT1@', '@INPUT@', 9*61046927SAndroid Build Coastguard Worker ] 10*61046927SAndroid Build Coastguard Workerelse 11*61046927SAndroid Build Coastguard Worker bison_command = [ 12*61046927SAndroid Build Coastguard Worker prog_bison, '-o', '@OUTPUT0@', '-p', 'glcpp_parser_', 13*61046927SAndroid Build Coastguard Worker '-H', '@OUTPUT1@', '@INPUT@', 14*61046927SAndroid Build Coastguard Worker ] 15*61046927SAndroid Build Coastguard Workerendif 16*61046927SAndroid Build Coastguard Worker 17*61046927SAndroid Build Coastguard Workerglcpp_parse = custom_target( 18*61046927SAndroid Build Coastguard Worker 'glcpp-parse.[ch]', 19*61046927SAndroid Build Coastguard Worker input : 'glcpp-parse.y', 20*61046927SAndroid Build Coastguard Worker output : ['glcpp-parse.c', 'glcpp-parse.h'], 21*61046927SAndroid Build Coastguard Worker command : bison_command 22*61046927SAndroid Build Coastguard Worker) 23*61046927SAndroid Build Coastguard Worker 24*61046927SAndroid Build Coastguard Workerglcpp_lex = custom_target( 25*61046927SAndroid Build Coastguard Worker 'glcpp-lex.c', 26*61046927SAndroid Build Coastguard Worker input : 'glcpp-lex.l', 27*61046927SAndroid Build Coastguard Worker output : 'glcpp-lex.c', 28*61046927SAndroid Build Coastguard Worker command : [prog_flex, '-o', '@OUTPUT@', '@INPUT@'], 29*61046927SAndroid Build Coastguard Worker) 30*61046927SAndroid Build Coastguard Worker 31*61046927SAndroid Build Coastguard Workerlibglcpp = static_library( 32*61046927SAndroid Build Coastguard Worker 'glcpp', 33*61046927SAndroid Build Coastguard Worker [glcpp_lex, glcpp_parse, files('glcpp.h', 'pp.c')], 34*61046927SAndroid Build Coastguard Worker dependencies : idep_mesautil, 35*61046927SAndroid Build Coastguard Worker include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], 36*61046927SAndroid Build Coastguard Worker c_args : [no_override_init_args, c_msvc_compat_args], 37*61046927SAndroid Build Coastguard Worker cpp_args : [cpp_msvc_compat_args], 38*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 39*61046927SAndroid Build Coastguard Worker build_by_default : false, 40*61046927SAndroid Build Coastguard Worker) 41*61046927SAndroid Build Coastguard Worker 42*61046927SAndroid Build Coastguard Workerlibglcpp_standalone = static_library( 43*61046927SAndroid Build Coastguard Worker 'glcpp_standalone', 44*61046927SAndroid Build Coastguard Worker 'pp_standalone_scaffolding.c', 45*61046927SAndroid Build Coastguard Worker link_with : libglcpp, 46*61046927SAndroid Build Coastguard Worker dependencies : idep_mesautil, 47*61046927SAndroid Build Coastguard Worker include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], 48*61046927SAndroid Build Coastguard Worker c_args : [no_override_init_args, c_msvc_compat_args], 49*61046927SAndroid Build Coastguard Worker cpp_args : [cpp_msvc_compat_args], 50*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 51*61046927SAndroid Build Coastguard Worker build_by_default : false, 52*61046927SAndroid Build Coastguard Worker) 53*61046927SAndroid Build Coastguard Worker 54*61046927SAndroid Build Coastguard Workerglcpp = executable( 55*61046927SAndroid Build Coastguard Worker 'glcpp', 56*61046927SAndroid Build Coastguard Worker 'glcpp.c', 57*61046927SAndroid Build Coastguard Worker dependencies : [dep_m, idep_getopt, idep_mesautil], 58*61046927SAndroid Build Coastguard Worker include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], 59*61046927SAndroid Build Coastguard Worker link_with : [libglcpp_standalone, libglsl_util], 60*61046927SAndroid Build Coastguard Worker c_args : [no_override_init_args, c_msvc_compat_args], 61*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 62*61046927SAndroid Build Coastguard Worker build_by_default : false, 63*61046927SAndroid Build Coastguard Worker) 64*61046927SAndroid Build Coastguard Worker 65*61046927SAndroid Build Coastguard Worker# Meson can't auto-skip these on cross builds because of the python wrapper 66*61046927SAndroid Build Coastguard Workerif with_any_opengl and with_tests and meson.can_run_host_binaries() and \ 67*61046927SAndroid Build Coastguard Worker with_glcpp_tests 68*61046927SAndroid Build Coastguard Worker modes = ['unix', 'windows', 'oldmac', 'bizarro'] 69*61046927SAndroid Build Coastguard Worker 70*61046927SAndroid Build Coastguard Worker foreach m : modes 71*61046927SAndroid Build Coastguard Worker test( 72*61046927SAndroid Build Coastguard Worker 'glcpp test (@0@)'.format(m), 73*61046927SAndroid Build Coastguard Worker prog_python, 74*61046927SAndroid Build Coastguard Worker args : [ 75*61046927SAndroid Build Coastguard Worker files('tests/glcpp_test.py'), 76*61046927SAndroid Build Coastguard Worker glcpp, join_paths(meson.current_source_dir(), 'tests'), 77*61046927SAndroid Build Coastguard Worker '--@0@'.format(m), 78*61046927SAndroid Build Coastguard Worker ], 79*61046927SAndroid Build Coastguard Worker suite : ['compiler', 'glcpp'], 80*61046927SAndroid Build Coastguard Worker timeout: 60, 81*61046927SAndroid Build Coastguard Worker ) 82*61046927SAndroid Build Coastguard Worker endforeach 83*61046927SAndroid Build Coastguard Workerendif 84