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