• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
21inc_compiler = include_directories('.')
22inc_glsl = include_directories('glsl')
23inc_spirv = include_directories('spirv')
24
25files_libcompiler = files(
26  'builtin_type_macros.h',
27  'glsl_types.cpp',
28  'glsl_types.h',
29  'nir_types.cpp',
30  'nir_types.h',
31  'shader_enums.c',
32  'shader_enums.h',
33  'shader_info.h',
34)
35
36ir_expression_operation_h = custom_target(
37  'ir_expression_operation.h',
38  input : 'glsl/ir_expression_operation.py',
39  output : 'ir_expression_operation.h',
40  command : [prog_python, '@INPUT@', 'enum'],
41  capture : true,
42)
43
44libcompiler = static_library(
45  'compiler',
46  [files_libcompiler, ir_expression_operation_h],
47  include_directories : [inc_mapi, inc_mesa, inc_compiler, inc_include, inc_src, inc_gallium, inc_gallium_aux],
48  c_args : [c_msvc_compat_args, no_override_init_args],
49  cpp_args : [cpp_msvc_compat_args],
50  gnu_symbol_visibility : 'hidden',
51  dependencies : [dep_valgrind],
52  build_by_default : false,
53)
54
55subdir('spirv')
56
57subdir('nir')
58
59# These are here because putting it in spirv/meson.build would create a circular
60# dependency with nir/meson.build.
61spirv2nir = executable(
62  'spirv2nir',
63  files('spirv/spirv2nir.c'),
64  dependencies : [dep_m, idep_nir, idep_mesautil],
65  include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, include_directories('spirv')],
66  c_args : [c_msvc_compat_args, no_override_init_args],
67  gnu_symbol_visibility : 'hidden',
68  build_by_default : with_tools.contains('nir'),
69  install : with_tools.contains('nir'),
70)
71
72if with_tests
73  test(
74    'spirv_tests',
75    executable(
76      'spirv_tests',
77      files(
78        'spirv/tests/helpers.h',
79        'spirv/tests/avail_vis.cpp',
80        'spirv/tests/volatile.cpp',
81      ),
82      c_args : [c_msvc_compat_args, no_override_init_args],
83      gnu_symbol_visibility : 'hidden',
84      include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
85      dependencies : [dep_thread, idep_gtest, idep_nir, idep_mesautil],
86    ),
87    suite : ['compiler', 'spirv'],
88    protocol : gtest_test_protocol,
89  )
90endif
91
92if with_clc
93  subdir('clc')
94endif
95subdir('glsl')
96subdir('isaspec')
97