xref: /aosp_15_r20/external/mesa3d/src/asahi/lib/meson.build (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker# Copyright 2018 Rob Clark
2*61046927SAndroid Build Coastguard Worker# Copyright 2019 Collabora, Ltd.
3*61046927SAndroid Build Coastguard Worker# Copyright 2017 Intel Corporation
4*61046927SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT
5*61046927SAndroid Build Coastguard Worker
6*61046927SAndroid Build Coastguard Workerdep_iokit = dependency('IOKit', required : false)
7*61046927SAndroid Build Coastguard Worker
8*61046927SAndroid Build Coastguard Workerlibasahi_lib_files = files(
9*61046927SAndroid Build Coastguard Worker  'agx_bo.c',
10*61046927SAndroid Build Coastguard Worker  'agx_border.c',
11*61046927SAndroid Build Coastguard Worker  'agx_device.c',
12*61046927SAndroid Build Coastguard Worker  'agx_device_virtio.c',
13*61046927SAndroid Build Coastguard Worker  'agx_linker.c',
14*61046927SAndroid Build Coastguard Worker  'agx_bg_eot.c',
15*61046927SAndroid Build Coastguard Worker  'agx_tilebuffer.c',
16*61046927SAndroid Build Coastguard Worker  'agx_nir_lower_alpha.c',
17*61046927SAndroid Build Coastguard Worker  'agx_nir_lower_gs.c',
18*61046927SAndroid Build Coastguard Worker  'agx_nir_lower_ia.c',
19*61046927SAndroid Build Coastguard Worker  'agx_nir_lower_msaa.c',
20*61046927SAndroid Build Coastguard Worker  'agx_nir_lower_sample_intrinsics.c',
21*61046927SAndroid Build Coastguard Worker  'agx_nir_lower_tess.c',
22*61046927SAndroid Build Coastguard Worker  'agx_nir_lower_texture.c',
23*61046927SAndroid Build Coastguard Worker  'agx_nir_lower_tilebuffer.c',
24*61046927SAndroid Build Coastguard Worker  'agx_nir_lower_uvs.c',
25*61046927SAndroid Build Coastguard Worker  'agx_nir_lower_vbo.c',
26*61046927SAndroid Build Coastguard Worker  'agx_nir_prolog_epilog.c',
27*61046927SAndroid Build Coastguard Worker  'agx_ppp.h',
28*61046927SAndroid Build Coastguard Worker  'agx_scratch.c',
29*61046927SAndroid Build Coastguard Worker  'agx_va.c',
30*61046927SAndroid Build Coastguard Worker  'pool.c',
31*61046927SAndroid Build Coastguard Worker)
32*61046927SAndroid Build Coastguard Worker
33*61046927SAndroid Build Coastguard Workerlibasahi_decode_files = files(
34*61046927SAndroid Build Coastguard Worker  'decode.c',
35*61046927SAndroid Build Coastguard Worker)
36*61046927SAndroid Build Coastguard Worker
37*61046927SAndroid Build Coastguard Workerlibagx_shader_files = files(
38*61046927SAndroid Build Coastguard Worker  'shaders/libagx.h',
39*61046927SAndroid Build Coastguard Worker  'shaders/compression.cl',
40*61046927SAndroid Build Coastguard Worker  'shaders/draws.cl',
41*61046927SAndroid Build Coastguard Worker  'shaders/draws.h',
42*61046927SAndroid Build Coastguard Worker  'shaders/geometry.cl',
43*61046927SAndroid Build Coastguard Worker  'shaders/geometry.h',
44*61046927SAndroid Build Coastguard Worker  'shaders/query.cl',
45*61046927SAndroid Build Coastguard Worker  'shaders/query.h',
46*61046927SAndroid Build Coastguard Worker  'shaders/tessellation.cl',
47*61046927SAndroid Build Coastguard Worker  'shaders/tessellator.cl',
48*61046927SAndroid Build Coastguard Worker  'shaders/tessellator.h',
49*61046927SAndroid Build Coastguard Worker  'shaders/texture.cl',
50*61046927SAndroid Build Coastguard Worker  'shaders/helper.cl',
51*61046927SAndroid Build Coastguard Worker)
52*61046927SAndroid Build Coastguard Worker
53*61046927SAndroid Build Coastguard Workerlibasahi_decode = static_library(
54*61046927SAndroid Build Coastguard Worker  'asahi_decode',
55*61046927SAndroid Build Coastguard Worker  [libasahi_decode_files, agx_pack],
56*61046927SAndroid Build Coastguard Worker  dependencies : [dep_valgrind, idep_mesautil],
57*61046927SAndroid Build Coastguard Worker  c_args : [no_override_init_args],
58*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
59*61046927SAndroid Build Coastguard Worker  build_by_default : false,
60*61046927SAndroid Build Coastguard Worker)
61*61046927SAndroid Build Coastguard Worker
62*61046927SAndroid Build Coastguard Workerlibasahi_decode_shared = shared_library(
63*61046927SAndroid Build Coastguard Worker  'asahi_decode',
64*61046927SAndroid Build Coastguard Worker  [libasahi_decode_files, agx_pack],
65*61046927SAndroid Build Coastguard Worker  dependencies : [dep_valgrind, idep_mesautil],
66*61046927SAndroid Build Coastguard Worker  c_args : [no_override_init_args],
67*61046927SAndroid Build Coastguard Worker  build_by_default : with_tools.contains('asahi'),
68*61046927SAndroid Build Coastguard Worker)
69*61046927SAndroid Build Coastguard Worker
70*61046927SAndroid Build Coastguard Workerprepended_input_args = []
71*61046927SAndroid Build Coastguard Workerforeach input_arg : libagx_shader_files
72*61046927SAndroid Build Coastguard Worker  prepended_input_args += ['--in', input_arg]
73*61046927SAndroid Build Coastguard Workerendforeach
74*61046927SAndroid Build Coastguard Workerlibagx_shaders = custom_target(
75*61046927SAndroid Build Coastguard Worker  'libagx_shaders.h',
76*61046927SAndroid Build Coastguard Worker  input : libagx_shader_files,
77*61046927SAndroid Build Coastguard Worker  output : 'libagx_shaders.h',
78*61046927SAndroid Build Coastguard Worker  command : [
79*61046927SAndroid Build Coastguard Worker    prog_asahi_clc, '--prefix', 'libagx_shaders',
80*61046927SAndroid Build Coastguard Worker    prepended_input_args, '-o', '@OUTPUT@', '--',
81*61046927SAndroid Build Coastguard Worker    '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200',
82*61046927SAndroid Build Coastguard Worker    '-I' + join_paths(meson.current_source_dir(), '.'),
83*61046927SAndroid Build Coastguard Worker    '-I' + join_paths(meson.current_source_dir(), '../../'),
84*61046927SAndroid Build Coastguard Worker    '-I' + join_paths(meson.current_source_dir(), 'shaders'),
85*61046927SAndroid Build Coastguard Worker    '-I' + join_paths(meson.current_build_dir(), '../genxml'),
86*61046927SAndroid Build Coastguard Worker    ],
87*61046927SAndroid Build Coastguard Worker  env: ['MESA_SHADER_CACHE_DISABLE=true'],
88*61046927SAndroid Build Coastguard Worker  depends : [prog_asahi_clc, agx_pack],
89*61046927SAndroid Build Coastguard Worker)
90*61046927SAndroid Build Coastguard Worker
91*61046927SAndroid Build Coastguard Workerlibasahi_lib = static_library(
92*61046927SAndroid Build Coastguard Worker  'asahi_lib',
93*61046927SAndroid Build Coastguard Worker  [libasahi_lib_files, libagx_shaders, agx_pack, sha1_h],
94*61046927SAndroid Build Coastguard Worker  include_directories : [inc_asahi, inc_virtio_gpu, inc_virtio_vdrm],
95*61046927SAndroid Build Coastguard Worker  c_args : [no_override_init_args],
96*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
97*61046927SAndroid Build Coastguard Worker  link_with: [libasahi_decode, libvdrm],
98*61046927SAndroid Build Coastguard Worker  dependencies: [dep_libdrm, dep_valgrind, idep_nir, idep_mesautil],
99*61046927SAndroid Build Coastguard Worker  build_by_default : false,
100*61046927SAndroid Build Coastguard Worker)
101*61046927SAndroid Build Coastguard Worker
102*61046927SAndroid Build Coastguard Workerif with_tests
103*61046927SAndroid Build Coastguard Worker  test(
104*61046927SAndroid Build Coastguard Worker    'libasahi_tests',
105*61046927SAndroid Build Coastguard Worker    executable(
106*61046927SAndroid Build Coastguard Worker      'libasahi_tests',
107*61046927SAndroid Build Coastguard Worker      files(
108*61046927SAndroid Build Coastguard Worker        'tests/test-packing.cpp',
109*61046927SAndroid Build Coastguard Worker        'tests/test-tilebuffer.cpp',
110*61046927SAndroid Build Coastguard Worker      ),
111*61046927SAndroid Build Coastguard Worker      c_args : [c_msvc_compat_args, no_override_init_args],
112*61046927SAndroid Build Coastguard Worker      gnu_symbol_visibility : 'hidden',
113*61046927SAndroid Build Coastguard Worker      dependencies: [idep_gtest, idep_agx_pack, idep_mesautil],
114*61046927SAndroid Build Coastguard Worker      link_with : [libasahi_lib, libasahi_layout],
115*61046927SAndroid Build Coastguard Worker    ),
116*61046927SAndroid Build Coastguard Worker    suite : ['asahi'],
117*61046927SAndroid Build Coastguard Worker    protocol : 'gtest',
118*61046927SAndroid Build Coastguard Worker  )
119*61046927SAndroid Build Coastguard Workerendif
120*61046927SAndroid Build Coastguard Worker
121*61046927SAndroid Build Coastguard Workerif dep_iokit.found()
122*61046927SAndroid Build Coastguard Worker  libasahi_wrap = shared_library(
123*61046927SAndroid Build Coastguard Worker    'wrap',
124*61046927SAndroid Build Coastguard Worker    'wrap.c',
125*61046927SAndroid Build Coastguard Worker    include_directories : [inc_src, inc_asahi],
126*61046927SAndroid Build Coastguard Worker    dependencies : [idep_mesautil, dep_iokit],
127*61046927SAndroid Build Coastguard Worker    c_args : [no_override_init_args, '-Wno-missing-prototypes'],
128*61046927SAndroid Build Coastguard Worker    gnu_symbol_visibility : 'hidden',
129*61046927SAndroid Build Coastguard Worker    build_by_default : with_tools.contains('asahi'),
130*61046927SAndroid Build Coastguard Worker    link_with: libasahi_decode,
131*61046927SAndroid Build Coastguard Worker  )
132*61046927SAndroid Build Coastguard Workerendif
133