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