1*61046927SAndroid Build Coastguard Worker# Copyright © 2017 Intel Corporation 2*61046927SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT 3*61046927SAndroid Build Coastguard Worker 4*61046927SAndroid Build Coastguard Workervtn_gather_types_c = custom_target( 5*61046927SAndroid Build Coastguard Worker 'vtn_gather_types.c', 6*61046927SAndroid Build Coastguard Worker input : files('vtn_gather_types_c.py', 'spirv.core.grammar.json'), 7*61046927SAndroid Build Coastguard Worker output : 'vtn_gather_types.c', 8*61046927SAndroid Build Coastguard Worker command : [prog_python, '@INPUT0@', '@INPUT1@', '@OUTPUT@'], 9*61046927SAndroid Build Coastguard Worker) 10*61046927SAndroid Build Coastguard Worker 11*61046927SAndroid Build Coastguard Workerspirv_info = custom_target( 12*61046927SAndroid Build Coastguard Worker 'spirv_info', 13*61046927SAndroid Build Coastguard Worker input : files('spirv_info_gen.py', 'spirv.core.grammar.json'), 14*61046927SAndroid Build Coastguard Worker output : ['spirv_info.h', 'spirv_info.c'], 15*61046927SAndroid Build Coastguard Worker command : [prog_python, '@INPUT0@', '--json', '@INPUT1@', 16*61046927SAndroid Build Coastguard Worker '--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@'], 17*61046927SAndroid Build Coastguard Worker) 18*61046927SAndroid Build Coastguard Workerspirv_info_h = spirv_info[0] 19*61046927SAndroid Build Coastguard Worker 20*61046927SAndroid Build Coastguard Workervtn_generator_ids_h = custom_target( 21*61046927SAndroid Build Coastguard Worker 'vtn_generator_ids.h', 22*61046927SAndroid Build Coastguard Worker input : files('vtn_generator_ids_h.py', 'spir-v.xml'), 23*61046927SAndroid Build Coastguard Worker output : 'vtn_generator_ids.h', 24*61046927SAndroid Build Coastguard Worker command : [prog_python, '@INPUT0@', '@INPUT1@', '@OUTPUT@'], 25*61046927SAndroid Build Coastguard Worker) 26*61046927SAndroid Build Coastguard Worker 27*61046927SAndroid Build Coastguard Workerfiles_libvtn = files( 28*61046927SAndroid Build Coastguard Worker 'GLSL.ext.AMD.h', 29*61046927SAndroid Build Coastguard Worker 'GLSL.std.450.h', 30*61046927SAndroid Build Coastguard Worker 'OpenCL.std.h', 31*61046927SAndroid Build Coastguard Worker 'gl_spirv.c', 32*61046927SAndroid Build Coastguard Worker 'nir_spirv.h', 33*61046927SAndroid Build Coastguard Worker 'spirv.h', 34*61046927SAndroid Build Coastguard Worker 'spirv_to_nir.c', 35*61046927SAndroid Build Coastguard Worker 'vtn_alu.c', 36*61046927SAndroid Build Coastguard Worker 'vtn_amd.c', 37*61046927SAndroid Build Coastguard Worker 'vtn_cfg.c', 38*61046927SAndroid Build Coastguard Worker 'vtn_cmat.c', 39*61046927SAndroid Build Coastguard Worker 'vtn_debug.c', 40*61046927SAndroid Build Coastguard Worker 'vtn_glsl450.c', 41*61046927SAndroid Build Coastguard Worker 'vtn_opencl.c', 42*61046927SAndroid Build Coastguard Worker 'vtn_private.h', 43*61046927SAndroid Build Coastguard Worker 'vtn_structured_cfg.c', 44*61046927SAndroid Build Coastguard Worker 'vtn_subgroup.c', 45*61046927SAndroid Build Coastguard Worker 'vtn_variables.c', 46*61046927SAndroid Build Coastguard Worker) 47*61046927SAndroid Build Coastguard Worker 48*61046927SAndroid Build Coastguard Workerlibvtn = static_library( 49*61046927SAndroid Build Coastguard Worker 'vtn', 50*61046927SAndroid Build Coastguard Worker [files_libvtn, 51*61046927SAndroid Build Coastguard Worker spirv_info, 52*61046927SAndroid Build Coastguard Worker vtn_gather_types_c, 53*61046927SAndroid Build Coastguard Worker vtn_generator_ids_h, 54*61046927SAndroid Build Coastguard Worker ], 55*61046927SAndroid Build Coastguard Worker include_directories : [inc_include, inc_src, inc_mapi, inc_mesa], 56*61046927SAndroid Build Coastguard Worker c_args : [c_msvc_compat_args, no_override_init_args], 57*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 58*61046927SAndroid Build Coastguard Worker dependencies : [dep_spirv_tools, idep_nir, dep_valgrind], 59*61046927SAndroid Build Coastguard Worker build_by_default : false, 60*61046927SAndroid Build Coastguard Worker) 61*61046927SAndroid Build Coastguard Worker 62*61046927SAndroid Build Coastguard Workeridep_vtn = declare_dependency( 63*61046927SAndroid Build Coastguard Worker dependencies : [dep_spirv_tools, idep_nir, idep_mesautil], 64*61046927SAndroid Build Coastguard Worker link_with : libvtn, 65*61046927SAndroid Build Coastguard Worker) 66*61046927SAndroid Build Coastguard Worker 67*61046927SAndroid Build Coastguard Workerspirv2nir = executable( 68*61046927SAndroid Build Coastguard Worker 'spirv2nir', 69*61046927SAndroid Build Coastguard Worker files('spirv2nir.c') + [ 70*61046927SAndroid Build Coastguard Worker vtn_generator_ids_h, 71*61046927SAndroid Build Coastguard Worker ], 72*61046927SAndroid Build Coastguard Worker dependencies : [dep_m, idep_vtn, idep_mesautil], 73*61046927SAndroid Build Coastguard Worker include_directories : [inc_include, inc_src], 74*61046927SAndroid Build Coastguard Worker c_args : [c_msvc_compat_args, no_override_init_args], 75*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 76*61046927SAndroid Build Coastguard Worker build_by_default : with_tools.contains('nir'), 77*61046927SAndroid Build Coastguard Worker install : with_tools.contains('nir'), 78*61046927SAndroid Build Coastguard Worker) 79*61046927SAndroid Build Coastguard Worker 80*61046927SAndroid Build Coastguard Workerif with_tests 81*61046927SAndroid Build Coastguard Worker test( 82*61046927SAndroid Build Coastguard Worker 'spirv_tests', 83*61046927SAndroid Build Coastguard Worker executable( 84*61046927SAndroid Build Coastguard Worker 'spirv_tests', 85*61046927SAndroid Build Coastguard Worker files( 86*61046927SAndroid Build Coastguard Worker 'tests/helpers.h', 87*61046927SAndroid Build Coastguard Worker 'tests/avail_vis.cpp', 88*61046927SAndroid Build Coastguard Worker 'tests/volatile.cpp', 89*61046927SAndroid Build Coastguard Worker 'tests/control_flow_tests.cpp', 90*61046927SAndroid Build Coastguard Worker ), 91*61046927SAndroid Build Coastguard Worker c_args : [c_msvc_compat_args, no_override_init_args], 92*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 93*61046927SAndroid Build Coastguard Worker include_directories : [inc_include, inc_src], 94*61046927SAndroid Build Coastguard Worker dependencies : [idep_vtn, dep_thread, idep_gtest, idep_nir, idep_mesautil], 95*61046927SAndroid Build Coastguard Worker ), 96*61046927SAndroid Build Coastguard Worker suite : ['compiler', 'spirv'], 97*61046927SAndroid Build Coastguard Worker protocol : 'gtest', 98*61046927SAndroid Build Coastguard Worker ) 99*61046927SAndroid Build Coastguard Workerendif 100