1# Copyright 2018 Rob Clark 2# Copyright 2019 Collabora, Ltd. 3# SPDX-License-Identifier: MIT 4 5libasahi_agx_files = files( 6 'agx_compile.c', 7 'agx_dce.c', 8 'agx_liveness.c', 9 'agx_insert_waits.c', 10 'agx_nir_lower_address.c', 11 'agx_nir_lower_cull_distance.c', 12 'agx_nir_lower_fminmax.c', 13 'agx_nir_lower_frag_sidefx.c', 14 'agx_nir_lower_sample_mask.c', 15 'agx_nir_lower_discard_zs_emit.c', 16 'agx_nir_lower_interpolation.c', 17 'agx_nir_lower_shared_bitsize.c', 18 'agx_nir_lower_subgroups.c', 19 'agx_nir_lower_texture.c', 20 'agx_nir_opt_preamble.c', 21 'agx_lower_64bit.c', 22 'agx_lower_divergent_shuffle.c', 23 'agx_lower_parallel_copy.c', 24 'agx_lower_pseudo.c', 25 'agx_lower_spill.c', 26 'agx_lower_uniform_sources.c', 27 'agx_pack.c', 28 'agx_performance.c', 29 'agx_print.c', 30 'agx_pressure_schedule.c', 31 'agx_ir.c', 32 'agx_opt_cse.c', 33 'agx_opt_break_if.c', 34 'agx_opt_empty_else.c', 35 'agx_opt_jmp_none.c', 36 'agx_opt_compact_constants.c', 37 'agx_opt_promote_constants.c', 38 'agx_optimizer.c', 39 'agx_repair_ssa.c', 40 'agx_reindex_ssa.c', 41 'agx_spill.c', 42 'agx_register_allocate.c', 43 'agx_validate.c', 44 'agx_validate_ra.c', 45) 46 47agx_nir_algebraic_c = custom_target( 48 'agx_nir_algebraic.c', 49 input : 'agx_nir_algebraic.py', 50 output : 'agx_nir_algebraic.c', 51 command : [ 52 prog_python, '@INPUT@', '-p', dir_compiler_nir, 53 ], 54 capture : true, 55 depend_files : nir_algebraic_depends, 56) 57 58agx_opcodes_h = custom_target( 59 'agx_opcodes.h', 60 input : ['agx_opcodes.h.py'], 61 output : 'agx_opcodes.h', 62 command : [prog_python, '@INPUT@'], 63 capture : true, 64 depend_files : files('agx_opcodes.py'), 65) 66 67idep_agx_opcodes_h = declare_dependency( 68 sources : [agx_opcodes_h], 69 include_directories : include_directories('.'), 70) 71 72agx_opcodes_c = custom_target( 73 'agx_opcodes.c', 74 input : ['agx_opcodes.c.py'], 75 output : 'agx_opcodes.c', 76 command : [prog_python, '@INPUT@'], 77 capture : true, 78 depend_files : files('agx_opcodes.py'), 79) 80 81agx_builder_h = custom_target( 82 'agx_builder.h', 83 input : ['agx_builder.h.py'], 84 output : 'agx_builder.h', 85 command : [prog_python, '@INPUT@'], 86 capture : true, 87 depend_files : files('agx_opcodes.py'), 88) 89 90idep_agx_builder_h = declare_dependency( 91 sources : [agx_builder_h], 92 include_directories : include_directories('.'), 93) 94 95libasahi_compiler = static_library( 96 'asahi_compiler', 97 [libasahi_agx_files, agx_opcodes_c, agx_nir_algebraic_c], 98 dependencies: [idep_nir, idep_agx_opcodes_h, idep_agx_builder_h, idep_mesautil, idep_libagx], 99 c_args : [no_override_init_args, '-Wno-c2x-extensions'], 100 gnu_symbol_visibility : 'hidden', 101 build_by_default : false, 102) 103 104if with_tests 105 test( 106 'agx_tests', 107 executable( 108 'agx_tests', 109 files( 110 'test/test-compact-constants.cpp', 111 'test/test-minifloat.cpp', 112 'test/test-optimizer.cpp', 113 'test/test-lower-pseudo.cpp', 114 'test/test-lower-parallel-copy.cpp', 115 'test/test-lower-spill.cpp', 116 'test/test-repair-ssa.cpp', 117 ), 118 c_args : [c_msvc_compat_args, no_override_init_args], 119 gnu_symbol_visibility : 'hidden', 120 dependencies: [idep_gtest, idep_nir, idep_agx_opcodes_h, idep_agx_builder_h, idep_mesautil], 121 link_with : [libasahi_compiler], 122 ), 123 suite : ['asahi'], 124 protocol : 'gtest', 125 ) 126endif 127