meson.build revision 01e04c3f
101e04c3fSmrg# Copyright © 2017 Intel Corporation 201e04c3fSmrg 301e04c3fSmrg# Permission is hereby granted, free of charge, to any person obtaining a copy 401e04c3fSmrg# of this software and associated documentation files (the "Software"), to deal 501e04c3fSmrg# in the Software without restriction, including without limitation the rights 601e04c3fSmrg# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 701e04c3fSmrg# copies of the Software, and to permit persons to whom the Software is 801e04c3fSmrg# furnished to do so, subject to the following conditions: 901e04c3fSmrg 1001e04c3fSmrg# The above copyright notice and this permission notice shall be included in 1101e04c3fSmrg# all copies or substantial portions of the Software. 1201e04c3fSmrg 1301e04c3fSmrg# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1401e04c3fSmrg# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1501e04c3fSmrg# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1601e04c3fSmrg# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1701e04c3fSmrg# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1801e04c3fSmrg# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1901e04c3fSmrg# SOFTWARE. 2001e04c3fSmrg 2101e04c3fSmrgnir_depends = files('nir_opcodes.py', 'nir_intrinsics.py') 2201e04c3fSmrg 2301e04c3fSmrgnir_builder_opcodes_h = custom_target( 2401e04c3fSmrg 'nir_builder_opcodes.h', 2501e04c3fSmrg input : 'nir_builder_opcodes_h.py', 2601e04c3fSmrg output : 'nir_builder_opcodes.h', 2701e04c3fSmrg command : [prog_python, '@INPUT@'], 2801e04c3fSmrg capture : true, 2901e04c3fSmrg depend_files : nir_depends, 3001e04c3fSmrg) 3101e04c3fSmrg 3201e04c3fSmrgnir_constant_expressions_c = custom_target( 3301e04c3fSmrg 'nir_constant_expressions.c', 3401e04c3fSmrg input : 'nir_constant_expressions.py', 3501e04c3fSmrg output : 'nir_constant_expressions.c', 3601e04c3fSmrg command : [prog_python, '@INPUT@'], 3701e04c3fSmrg capture : true, 3801e04c3fSmrg depend_files : nir_depends, 3901e04c3fSmrg) 4001e04c3fSmrg 4101e04c3fSmrgnir_opcodes_h = custom_target( 4201e04c3fSmrg 'nir_opcodes.h', 4301e04c3fSmrg input : 'nir_opcodes_h.py', 4401e04c3fSmrg output : 'nir_opcodes.h', 4501e04c3fSmrg command : [prog_python, '@INPUT@'], 4601e04c3fSmrg capture : true, 4701e04c3fSmrg depend_files : nir_depends, 4801e04c3fSmrg) 4901e04c3fSmrg 5001e04c3fSmrgnir_opcodes_c = custom_target( 5101e04c3fSmrg 'nir_opcodes.c', 5201e04c3fSmrg input : 'nir_opcodes_c.py', 5301e04c3fSmrg output : 'nir_opcodes.c', 5401e04c3fSmrg command : [prog_python, '@INPUT@'], 5501e04c3fSmrg capture : true, 5601e04c3fSmrg depend_files : nir_depends, 5701e04c3fSmrg) 5801e04c3fSmrg 5901e04c3fSmrgnir_opt_algebraic_c = custom_target( 6001e04c3fSmrg 'nir_opt_algebraic.c', 6101e04c3fSmrg input : 'nir_opt_algebraic.py', 6201e04c3fSmrg output : 'nir_opt_algebraic.c', 6301e04c3fSmrg command : [prog_python, '@INPUT@'], 6401e04c3fSmrg capture : true, 6501e04c3fSmrg depend_files : files('nir_algebraic.py'), 6601e04c3fSmrg) 6701e04c3fSmrg 6801e04c3fSmrgnir_intrinsics_h = custom_target( 6901e04c3fSmrg 'nir_intrinsics.h', 7001e04c3fSmrg input : 'nir_intrinsics_h.py', 7101e04c3fSmrg output : 'nir_intrinsics.h', 7201e04c3fSmrg command : [prog_python, '@INPUT@', '--outdir', meson.current_build_dir()], 7301e04c3fSmrg capture : false, 7401e04c3fSmrg depend_files : files('nir_intrinsics.py'), 7501e04c3fSmrg) 7601e04c3fSmrg 7701e04c3fSmrgnir_intrinsics_c = custom_target( 7801e04c3fSmrg 'nir_intrinsic.c', 7901e04c3fSmrg input : 'nir_intrinsics_c.py', 8001e04c3fSmrg output : 'nir_intrinsics.c', 8101e04c3fSmrg command : [prog_python, '@INPUT@', '--outdir', meson.current_build_dir()], 8201e04c3fSmrg capture: false, 8301e04c3fSmrg depend_files : files('nir_intrinsics.py'), 8401e04c3fSmrg) 8501e04c3fSmrg 8601e04c3fSmrgfiles_libnir = files( 8701e04c3fSmrg 'nir.c', 8801e04c3fSmrg 'nir.h', 8901e04c3fSmrg 'nir_builder.h', 9001e04c3fSmrg 'nir_builtin_builder.c', 9101e04c3fSmrg 'nir_builtin_builder.h', 9201e04c3fSmrg 'nir_clone.c', 9301e04c3fSmrg 'nir_constant_expressions.h', 9401e04c3fSmrg 'nir_control_flow.c', 9501e04c3fSmrg 'nir_control_flow.h', 9601e04c3fSmrg 'nir_control_flow_private.h', 9701e04c3fSmrg 'nir_deref.c', 9801e04c3fSmrg 'nir_deref.h', 9901e04c3fSmrg 'nir_dominance.c', 10001e04c3fSmrg 'nir_format_convert.h', 10101e04c3fSmrg 'nir_from_ssa.c', 10201e04c3fSmrg 'nir_gather_info.c', 10301e04c3fSmrg 'nir_gather_xfb_info.c', 10401e04c3fSmrg 'nir_gs_count_vertices.c', 10501e04c3fSmrg 'nir_inline_functions.c', 10601e04c3fSmrg 'nir_instr_set.c', 10701e04c3fSmrg 'nir_instr_set.h', 10801e04c3fSmrg 'nir_linking_helpers.c', 10901e04c3fSmrg 'nir_liveness.c', 11001e04c3fSmrg 'nir_loop_analyze.c', 11101e04c3fSmrg 'nir_loop_analyze.h', 11201e04c3fSmrg 'nir_lower_alu.c', 11301e04c3fSmrg 'nir_lower_alu_to_scalar.c', 11401e04c3fSmrg 'nir_lower_alpha_test.c', 11501e04c3fSmrg 'nir_lower_atomics_to_ssbo.c', 11601e04c3fSmrg 'nir_lower_bitmap.c', 11701e04c3fSmrg 'nir_lower_clamp_color_outputs.c', 11801e04c3fSmrg 'nir_lower_clip.c', 11901e04c3fSmrg 'nir_lower_clip_cull_distance_arrays.c', 12001e04c3fSmrg 'nir_lower_constant_initializers.c', 12101e04c3fSmrg 'nir_lower_double_ops.c', 12201e04c3fSmrg 'nir_lower_drawpixels.c', 12301e04c3fSmrg 'nir_lower_global_vars_to_local.c', 12401e04c3fSmrg 'nir_lower_gs_intrinsics.c', 12501e04c3fSmrg 'nir_lower_load_const_to_scalar.c', 12601e04c3fSmrg 'nir_lower_locals_to_regs.c', 12701e04c3fSmrg 'nir_lower_idiv.c', 12801e04c3fSmrg 'nir_lower_indirect_derefs.c', 12901e04c3fSmrg 'nir_lower_int64.c', 13001e04c3fSmrg 'nir_lower_io.c', 13101e04c3fSmrg 'nir_lower_io_arrays_to_elements.c', 13201e04c3fSmrg 'nir_lower_io_to_temporaries.c', 13301e04c3fSmrg 'nir_lower_io_to_scalar.c', 13401e04c3fSmrg 'nir_lower_packing.c', 13501e04c3fSmrg 'nir_lower_passthrough_edgeflags.c', 13601e04c3fSmrg 'nir_lower_patch_vertices.c', 13701e04c3fSmrg 'nir_lower_phis_to_scalar.c', 13801e04c3fSmrg 'nir_lower_regs_to_ssa.c', 13901e04c3fSmrg 'nir_lower_returns.c', 14001e04c3fSmrg 'nir_lower_subgroups.c', 14101e04c3fSmrg 'nir_lower_system_values.c', 14201e04c3fSmrg 'nir_lower_tex.c', 14301e04c3fSmrg 'nir_lower_to_source_mods.c', 14401e04c3fSmrg 'nir_lower_two_sided_color.c', 14501e04c3fSmrg 'nir_lower_vars_to_ssa.c', 14601e04c3fSmrg 'nir_lower_var_copies.c', 14701e04c3fSmrg 'nir_lower_vec_to_movs.c', 14801e04c3fSmrg 'nir_lower_wpos_center.c', 14901e04c3fSmrg 'nir_lower_wpos_ytransform.c', 15001e04c3fSmrg 'nir_lower_bit_size.c', 15101e04c3fSmrg 'nir_metadata.c', 15201e04c3fSmrg 'nir_move_load_const.c', 15301e04c3fSmrg 'nir_move_vec_src_uses_to_dest.c', 15401e04c3fSmrg 'nir_normalize_cubemap_coords.c', 15501e04c3fSmrg 'nir_opt_conditional_discard.c', 15601e04c3fSmrg 'nir_opt_constant_folding.c', 15701e04c3fSmrg 'nir_opt_copy_prop_vars.c', 15801e04c3fSmrg 'nir_opt_copy_propagate.c', 15901e04c3fSmrg 'nir_opt_cse.c', 16001e04c3fSmrg 'nir_opt_dce.c', 16101e04c3fSmrg 'nir_opt_dead_cf.c', 16201e04c3fSmrg 'nir_opt_dead_write_vars.c', 16301e04c3fSmrg 'nir_opt_find_array_copies.c', 16401e04c3fSmrg 'nir_opt_gcm.c', 16501e04c3fSmrg 'nir_opt_global_to_local.c', 16601e04c3fSmrg 'nir_opt_if.c', 16701e04c3fSmrg 'nir_opt_intrinsics.c', 16801e04c3fSmrg 'nir_opt_large_constants.c', 16901e04c3fSmrg 'nir_opt_loop_unroll.c', 17001e04c3fSmrg 'nir_opt_move_comparisons.c', 17101e04c3fSmrg 'nir_opt_move_load_ubo.c', 17201e04c3fSmrg 'nir_opt_peephole_select.c', 17301e04c3fSmrg 'nir_opt_remove_phis.c', 17401e04c3fSmrg 'nir_opt_shrink_load.c', 17501e04c3fSmrg 'nir_opt_trivial_continues.c', 17601e04c3fSmrg 'nir_opt_undef.c', 17701e04c3fSmrg 'nir_phi_builder.c', 17801e04c3fSmrg 'nir_phi_builder.h', 17901e04c3fSmrg 'nir_print.c', 18001e04c3fSmrg 'nir_propagate_invariant.c', 18101e04c3fSmrg 'nir_remove_dead_variables.c', 18201e04c3fSmrg 'nir_repair_ssa.c', 18301e04c3fSmrg 'nir_search.c', 18401e04c3fSmrg 'nir_search.h', 18501e04c3fSmrg 'nir_search_helpers.h', 18601e04c3fSmrg 'nir_serialize.c', 18701e04c3fSmrg 'nir_serialize.h', 18801e04c3fSmrg 'nir_split_per_member_structs.c', 18901e04c3fSmrg 'nir_split_var_copies.c', 19001e04c3fSmrg 'nir_split_vars.c', 19101e04c3fSmrg 'nir_sweep.c', 19201e04c3fSmrg 'nir_to_lcssa.c', 19301e04c3fSmrg 'nir_validate.c', 19401e04c3fSmrg 'nir_vla.h', 19501e04c3fSmrg 'nir_worklist.c', 19601e04c3fSmrg 'nir_worklist.h', 19701e04c3fSmrg 'nir_xfb_info.h', 19801e04c3fSmrg '../spirv/GLSL.ext.AMD.h', 19901e04c3fSmrg '../spirv/GLSL.std.450.h', 20001e04c3fSmrg '../spirv/gl_spirv.c', 20101e04c3fSmrg '../spirv/nir_spirv.h', 20201e04c3fSmrg '../spirv/spirv.h', 20301e04c3fSmrg '../spirv/spirv_info.h', 20401e04c3fSmrg '../spirv/spirv_to_nir.c', 20501e04c3fSmrg '../spirv/vtn_alu.c', 20601e04c3fSmrg '../spirv/vtn_amd.c', 20701e04c3fSmrg '../spirv/vtn_cfg.c', 20801e04c3fSmrg '../spirv/vtn_glsl450.c', 20901e04c3fSmrg '../spirv/vtn_private.h', 21001e04c3fSmrg '../spirv/vtn_subgroup.c', 21101e04c3fSmrg '../spirv/vtn_variables.c', 21201e04c3fSmrg) 21301e04c3fSmrg 21401e04c3fSmrglibnir = static_library( 21501e04c3fSmrg 'nir', 21601e04c3fSmrg [files_libnir, spirv_info_c, nir_opt_algebraic_c, nir_opcodes_c, 21701e04c3fSmrg nir_opcodes_h, nir_constant_expressions_c, nir_builder_opcodes_h, 21801e04c3fSmrg vtn_gather_types_c, nir_intrinsics_c, nir_intrinsics_h], 21901e04c3fSmrg include_directories : [inc_common, inc_compiler, include_directories('../spirv')], 22001e04c3fSmrg c_args : [c_vis_args, c_msvc_compat_args, no_override_init_args], 22101e04c3fSmrg link_with : libcompiler, 22201e04c3fSmrg build_by_default : false, 22301e04c3fSmrg) 22401e04c3fSmrg 22501e04c3fSmrg# Headers-only dependency 22601e04c3fSmrgidep_nir_headers = declare_dependency( 22701e04c3fSmrg sources : [nir_opcodes_h, nir_builder_opcodes_h, nir_intrinsics_h], 22801e04c3fSmrg include_directories : include_directories('.'), 22901e04c3fSmrg) 23001e04c3fSmrg 23101e04c3fSmrg# Also link with nir 23201e04c3fSmrgidep_nir = declare_dependency( 23301e04c3fSmrg dependencies : idep_nir_headers, 23401e04c3fSmrg link_with : libnir, 23501e04c3fSmrg) 23601e04c3fSmrg 23701e04c3fSmrgnir_algebraic_py = files('nir_algebraic.py') 23801e04c3fSmrg 23901e04c3fSmrgif with_tests 24001e04c3fSmrg test( 24101e04c3fSmrg 'nir_control_flow', 24201e04c3fSmrg executable( 24301e04c3fSmrg 'nir_control_flow_test', 24401e04c3fSmrg files('tests/control_flow_tests.cpp'), 24501e04c3fSmrg cpp_args : [cpp_vis_args, cpp_msvc_compat_args], 24601e04c3fSmrg include_directories : [inc_common], 24701e04c3fSmrg dependencies : [dep_thread, idep_gtest, idep_nir], 24801e04c3fSmrg link_with : libmesa_util, 24901e04c3fSmrg ) 25001e04c3fSmrg ) 25101e04c3fSmrg test( 25201e04c3fSmrg 'nir_vars', 25301e04c3fSmrg executable( 25401e04c3fSmrg 'nir_vars_test', 25501e04c3fSmrg files('tests/vars_tests.cpp'), 25601e04c3fSmrg cpp_args : [cpp_vis_args, cpp_msvc_compat_args], 25701e04c3fSmrg include_directories : [inc_common], 25801e04c3fSmrg dependencies : [dep_thread, idep_gtest, idep_nir], 25901e04c3fSmrg link_with : libmesa_util, 26001e04c3fSmrg ) 26101e04c3fSmrg ) 26201e04c3fSmrgendif 263