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