• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright © 2018 Lima Project
2#
3# Permission is hereby granted, free of charge, to any person obtaining a
4# copy of this software and associated documentation files (the "Software"),
5# to deal in the Software without restriction, including without limitation
6# the rights to use, copy, modify, merge, publish, distribute, sublicense,
7# and/or sell copies of the Software, and to permit persons to whom the
8# Software is furnished to do so, subject to the following conditions:
9#
10# The above copyright notice and this permission notice (including the next
11# paragraph) shall be included in all copies or substantial portions of the
12# Software.
13#
14# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20# IN THE SOFTWARE.
21
22files_lima = files(
23  'ir/gp/gpir.h',
24  'ir/gp/nir.c',
25  'ir/gp/node.c',
26  'ir/gp/lower.c',
27  'ir/gp/scheduler.c',
28  'ir/gp/instr.c',
29  'ir/gp/codegen.h',
30  'ir/gp/codegen.c',
31  'ir/gp/reduce_scheduler.c',
32  'ir/gp/regalloc.c',
33  'ir/gp/disasm.c',
34  'ir/gp/optimize.c',
35
36  'ir/pp/ppir.h',
37  'ir/pp/nir.c',
38  'ir/pp/node.c',
39  'ir/pp/lower.c',
40  'ir/pp/scheduler.c',
41  'ir/pp/instr.c',
42  'ir/pp/regalloc.c',
43  'ir/pp/liveness.c',
44  'ir/pp/codegen.h',
45  'ir/pp/codegen.c',
46  'ir/pp/node_to_instr.c',
47  'ir/pp/disasm.c',
48
49  'ir/lima_nir_duplicate_consts.c',
50  'ir/lima_nir_duplicate_intrinsic.c',
51  'ir/lima_nir_lower_uniform_to_scalar.c',
52  'ir/lima_nir_split_load_input.c',
53
54  'ir/lima_ir.h',
55
56  'lima_screen.c',
57  'lima_screen.h',
58  'lima_context.c',
59  'lima_context.h',
60  'lima_resource.c',
61  'lima_resource.h',
62  'lima_state.c',
63  'lima_draw.c',
64  'lima_program.c',
65  'lima_query.c',
66  'lima_bo.c',
67  'lima_bo.h',
68  'lima_job.c',
69  'lima_job.h',
70  'lima_parser.c',
71  'lima_parser.h',
72  'lima_util.c',
73  'lima_util.h',
74  'lima_texture.c',
75  'lima_texture.h',
76  'lima_fence.c',
77  'lima_fence.h',
78  'lima_format.h',
79  'lima_format.c',
80  'lima_gpu.h',
81)
82
83lima_nir_algebraic_c = custom_target(
84  'lima_nir_algebraic.c',
85  input : 'ir/lima_nir_algebraic.py',
86  output : 'lima_nir_algebraic.c',
87  command : [
88    prog_python, '@INPUT@',
89    '-p', join_paths(meson.source_root(), 'src/compiler/nir/'),
90  ],
91  capture : true,
92  depend_files : nir_algebraic_py,
93)
94
95liblima = static_library(
96  'lima',
97  files_lima, lima_nir_algebraic_c,
98  include_directories : [
99    inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_gallium_drivers,
100    inc_panfrost
101  ],
102  dependencies : [dep_libdrm, idep_nir_headers],
103)
104
105driver_lima = declare_dependency(
106  compile_args : '-DGALLIUM_LIMA',
107  link_with : [liblima, liblimawinsys, libpanfrost_shared],
108  dependencies : idep_nir,
109)
110
111
112lima_compiler = executable(
113  'lima_compiler',
114  files(
115    'standalone/lima_compiler_cmdline.c',
116    'standalone/glsl.cpp'
117  ),
118  include_directories : [
119    inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_gallium_drivers, inc_mesa, inc_mapi, inc_compiler,
120  ],
121  dependencies : [
122    idep_nir,
123    idep_mesautil,
124  ],
125  link_with : [
126    liblima,
127    libgallium,
128    libglsl_standalone,
129    libpanfrost_shared,
130  ],
131  build_by_default : with_tools.contains('lima'),
132  install : with_tools.contains('lima'),
133)
134
135lima_disasm = executable(
136  'lima_disasm',
137  files(
138    'standalone/lima_disasm.c',
139  ),
140  include_directories : [
141    inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_gallium_drivers, inc_mesa, inc_mapi, inc_compiler,
142  ],
143  dependencies : [
144    idep_mesautil,
145  ],
146  link_with : [
147    liblima,
148    libpanfrost_shared,
149  ],
150  build_by_default : with_tools.contains('lima'),
151  install : with_tools.contains('lima'),
152)
153