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