• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2018 Rob Clark
2# Copyright 2019 Collabora, Ltd.
3# Copyright 2017 Intel Corporation
4# SPDX-License-Identifier: MIT
5
6dep_iokit = dependency('IOKit', required : false)
7
8libasahi_lib_files = files(
9  'agx_bo.c',
10  'agx_border.c',
11  'agx_device.c',
12  'agx_device_virtio.c',
13  'agx_linker.c',
14  'agx_bg_eot.c',
15  'agx_tilebuffer.c',
16  'agx_nir_lower_alpha.c',
17  'agx_nir_lower_gs.c',
18  'agx_nir_lower_ia.c',
19  'agx_nir_lower_msaa.c',
20  'agx_nir_lower_sample_intrinsics.c',
21  'agx_nir_lower_tess.c',
22  'agx_nir_lower_tilebuffer.c',
23  'agx_nir_lower_uvs.c',
24  'agx_nir_lower_vbo.c',
25  'agx_nir_prolog_epilog.c',
26  'agx_ppp.h',
27  'agx_scratch.c',
28  'agx_va.c',
29  'pool.c',
30)
31
32libasahi_decode_files = files(
33  'decode.c',
34)
35
36libasahi_decode = static_library(
37  'asahi_decode',
38  [libasahi_decode_files, agx_pack],
39  dependencies : [dep_valgrind, idep_mesautil],
40  c_args : [no_override_init_args, '-Wno-c2x-extensions'],
41  gnu_symbol_visibility : 'hidden',
42  build_by_default : false,
43)
44
45libasahi_decode_shared = shared_library(
46  'asahi_decode',
47  [libasahi_decode_files, agx_pack],
48  dependencies : [dep_valgrind, idep_mesautil],
49  c_args : [no_override_init_args, '-Wno-c2x-extensions'],
50  build_by_default : with_tools.contains('asahi'),
51)
52
53libagx_shaders = custom_target(
54  'libagx_shaders',
55  input : libagx_spv,
56  output : ['libagx_shaders.h', 'libagx_shaders.c'],
57  command : [prog_asahi_clc, libagx_spv, '@OUTPUT0@', '@OUTPUT1@'],
58  env: ['MESA_SHADER_CACHE_DISABLE=true'],
59  depends : [prog_asahi_clc],
60)
61
62idep_libagx_shaders_h = declare_dependency(
63  sources : [libagx_shaders],
64  include_directories : include_directories('.'),
65)
66
67libasahi_lib = static_library(
68  'asahi_lib',
69  [libasahi_lib_files, libagx_shaders, agx_pack, sha1_h],
70  include_directories : [inc_asahi, inc_virtio_gpu, inc_virtio_vdrm],
71  c_args : [no_override_init_args, '-Wno-c2x-extensions'],
72  gnu_symbol_visibility : 'hidden',
73  link_with: [libasahi_decode, libvdrm],
74  dependencies: [dep_libdrm, dep_valgrind, idep_nir, idep_mesautil, idep_libagx],
75  build_by_default : false,
76)
77
78if with_tests
79  test(
80    'libasahi_tests',
81    executable(
82      'libasahi_tests',
83      files(
84        'tests/test-packing.cpp',
85        'tests/test-tilebuffer.cpp',
86      ),
87      c_args : [c_msvc_compat_args, no_override_init_args],
88      gnu_symbol_visibility : 'hidden',
89      dependencies: [idep_gtest, idep_agx_pack, idep_mesautil],
90      link_with : [libasahi_lib, libasahi_layout],
91    ),
92    suite : ['asahi'],
93    protocol : 'gtest',
94  )
95endif
96
97if dep_iokit.found()
98  libasahi_wrap = shared_library(
99    'wrap',
100    'wrap.c',
101    include_directories : [inc_src, inc_asahi],
102    dependencies : [idep_mesautil, dep_iokit],
103    c_args : [no_override_init_args, '-Wno-missing-prototypes'],
104    gnu_symbol_visibility : 'hidden',
105    build_by_default : with_tools.contains('asahi'),
106    link_with: libasahi_decode,
107  )
108endif
109