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_clip_distance.c', 12 'agx_nir_lower_cull_distance.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_layer.c', 18 'agx_nir_lower_load_mask.c', 19 'agx_nir_lower_shared_bitsize.c', 20 'agx_nir_lower_subgroups.c', 21 'agx_nir_opt_preamble.c', 22 'agx_lower_64bit.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_optimizer.c', 37 'agx_register_allocate.c', 38 'agx_validate.c', 39) 40 41agx_nir_algebraic_c = custom_target( 42 'agx_nir_algebraic.c', 43 input : 'agx_nir_algebraic.py', 44 output : 'agx_nir_algebraic.c', 45 command : [ 46 prog_python, '@INPUT@', '-p', dir_compiler_nir, 47 ], 48 capture : true, 49 depend_files : nir_algebraic_depends, 50) 51 52agx_opcodes_h = custom_target( 53 'agx_opcodes.h', 54 input : ['agx_opcodes.h.py'], 55 output : 'agx_opcodes.h', 56 command : [prog_python, '@INPUT@'], 57 capture : true, 58 depend_files : files('agx_opcodes.py'), 59) 60 61idep_agx_opcodes_h = declare_dependency( 62 sources : [agx_opcodes_h], 63 include_directories : include_directories('.'), 64) 65 66agx_opcodes_c = custom_target( 67 'agx_opcodes.c', 68 input : ['agx_opcodes.c.py'], 69 output : 'agx_opcodes.c', 70 command : [prog_python, '@INPUT@'], 71 capture : true, 72 depend_files : files('agx_opcodes.py'), 73) 74 75agx_builder_h = custom_target( 76 'agx_builder.h', 77 input : ['agx_builder.h.py'], 78 output : 'agx_builder.h', 79 command : [prog_python, '@INPUT@'], 80 capture : true, 81 depend_files : files('agx_opcodes.py'), 82) 83 84idep_agx_builder_h = declare_dependency( 85 sources : [agx_builder_h], 86 include_directories : include_directories('.'), 87) 88 89libasahi_compiler = static_library( 90 'asahi_compiler', 91 [libasahi_agx_files, agx_opcodes_c, agx_nir_algebraic_c], 92 dependencies: [idep_nir, idep_agx_opcodes_h, idep_agx_builder_h], 93 c_args : [no_override_init_args], 94 gnu_symbol_visibility : 'hidden', 95 build_by_default : false, 96) 97 98if with_tests 99 test( 100 'agx_tests', 101 executable( 102 'agx_tests', 103 files( 104 'test/test-minifloat.cpp', 105 'test/test-optimizer.cpp', 106 'test/test-lower-pseudo.cpp', 107 'test/test-lower-parallel-copy.cpp', 108 'test/test-lower-spill.cpp', 109 ), 110 c_args : [c_msvc_compat_args, no_override_init_args], 111 gnu_symbol_visibility : 'hidden', 112 dependencies: [idep_gtest, idep_nir, idep_agx_opcodes_h, idep_agx_builder_h], 113 link_with : [libasahi_compiler], 114 ), 115 suite : ['asahi'], 116 protocol : 'gtest', 117 ) 118endif 119