xref: /aosp_15_r20/external/mesa3d/src/panfrost/lib/meson.build (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1# Copyright © 2018 Rob Clark
2# Copyright © 2019 Collabora
3# SPDX-License-Identifier: MIT
4
5subdir('genxml')
6subdir('kmod')
7
8pixel_format_versions = ['5', '6', '7', '9', '10']
9libpanfrost_pixel_format = []
10
11deps_for_libpanfrost = [dep_libdrm, idep_pan_packers, idep_mesautil]
12
13foreach ver : pixel_format_versions
14  libpanfrost_pixel_format += static_library(
15    'pan-format-v' + ver,
16    ['pan_format.c', pan_packers],
17    include_directories : [
18      inc_src, inc_include, inc_panfrost_hw, inc_panfrost_hw
19    ],
20    c_args : ['-DPAN_ARCH=' + ver],
21    gnu_symbol_visibility : 'hidden',
22    dependencies : [deps_for_libpanfrost, dep_valgrind],
23)
24endforeach
25
26libpanfrost_per_arch = []
27
28foreach ver : ['4', '5', '6', '7', '9', '10']
29  libpanfrost_per_arch += static_library(
30    'pan-arch-v' + ver,
31    [
32      'pan_blend.c',
33      'pan_blitter.c',
34      'pan_desc.c',
35      'pan_shader.c',
36      'pan_texture.c',
37    ],
38    include_directories : [inc_include, inc_src, inc_panfrost_hw],
39    c_args : ['-DPAN_ARCH=' + ver],
40    gnu_symbol_visibility : 'hidden',
41    dependencies : [deps_for_libpanfrost, idep_nir],
42  )
43endforeach
44
45foreach ver : ['7']
46  libpanfrost_per_arch += static_library(
47    'pan-arch-indirect-v' + ver,
48    'pan_indirect_dispatch.c',
49    include_directories : [inc_include, inc_src, inc_panfrost_hw],
50    c_args : ['-DPAN_ARCH=' + ver],
51    gnu_symbol_visibility : 'hidden',
52    dependencies : [deps_for_libpanfrost, idep_nir],
53  )
54endforeach
55
56libpanfrost_lib_files = files(
57  'pan_encoder.h',
58
59  'pan_afbc.c',
60  'pan_afrc.c',
61  'pan_attributes.c',
62  'pan_blend.c',
63  'pan_clear.c',
64  'pan_earlyzs.c',
65  'pan_samples.c',
66  'pan_tiler.c',
67  'pan_layout.c',
68  'pan_scratch.c',
69  'pan_props.c',
70  'pan_util.c',
71)
72
73libpanfrost_lib = static_library(
74  'panfrost_lib',
75  [libpanfrost_lib_files, pan_packers],
76  include_directories : [inc_include, inc_src, inc_panfrost_hw],
77  c_args : [no_override_init_args],
78  gnu_symbol_visibility : 'hidden',
79  dependencies: [dep_libdrm, idep_nir, idep_mesautil],
80  build_by_default : false,
81  link_with: [libpanfrost_pixel_format, libpanfrost_per_arch, libpankmod_lib],
82)
83
84libpanfrost_dep = declare_dependency(
85  link_with: [libpanfrost_lib, libpanfrost_decode, libpanfrost_midgard, libpanfrost_bifrost, libpanfrost_pixel_format, libpanfrost_per_arch],
86  include_directories: [inc_include, inc_src, inc_panfrost_hw, inc_panfrost],
87  dependencies: [deps_for_libpanfrost, libpankmod_dep, idep_nir],
88)
89
90if with_tests
91  test(
92    'panfrost_blend',
93    executable(
94      'panfrost_blend_test',
95      files('tests/test-blend.c'),
96      c_args : [c_msvc_compat_args, no_override_init_args],
97      gnu_symbol_visibility : 'hidden',
98      include_directories : [inc_include, inc_src],
99      dependencies: [libpanfrost_dep],
100    ),
101    suite : ['panfrost'],
102  )
103
104  test(
105    'panfrost_clear',
106    executable(
107      'panfrost_clear_test',
108      files('tests/test-clear.c'),
109      c_args : [c_msvc_compat_args, no_override_init_args],
110      gnu_symbol_visibility : 'hidden',
111      include_directories : [inc_include, inc_src],
112      dependencies: [libpanfrost_dep],
113    ),
114    suite : ['panfrost'],
115  )
116
117  test(
118    'panfrost_tests',
119    executable(
120      'panfrost_tests',
121      files(
122        'tests/test-earlyzs.cpp',
123        'tests/test-layout.cpp',
124      ),
125      c_args : [c_msvc_compat_args, no_override_init_args],
126      gnu_symbol_visibility : 'hidden',
127      include_directories : [inc_include, inc_src, inc_panfrost],
128      dependencies: [idep_gtest, libpanfrost_dep],
129    ),
130    suite : ['panfrost'],
131    protocol : 'gtest',
132  )
133endif
134