xref: /aosp_15_r20/external/mesa3d/src/compiler/glsl/glcpp/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 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