1b8e80941Smrg# Copyright © 2017 Intel Corporation 2b8e80941Smrg 3b8e80941Smrg# Permission is hereby granted, free of charge, to any person obtaining a copy 4b8e80941Smrg# of this software and associated documentation files (the "Software"), to deal 5b8e80941Smrg# in the Software without restriction, including without limitation the rights 6b8e80941Smrg# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7b8e80941Smrg# copies of the Software, and to permit persons to whom the Software is 8b8e80941Smrg# furnished to do so, subject to the following conditions: 9b8e80941Smrg 10b8e80941Smrg# The above copyright notice and this permission notice shall be included in 11b8e80941Smrg# all copies or substantial portions of the Software. 12b8e80941Smrg 13b8e80941Smrg# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14b8e80941Smrg# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15b8e80941Smrg# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16b8e80941Smrg# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17b8e80941Smrg# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18b8e80941Smrg# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19b8e80941Smrg# SOFTWARE. 20b8e80941Smrg 21b8e80941Smrgtu_entrypoints = custom_target( 22b8e80941Smrg 'tu_entrypoints.[ch]', 23b8e80941Smrg input : ['tu_entrypoints_gen.py', vk_api_xml], 24b8e80941Smrg output : ['tu_entrypoints.h', 'tu_entrypoints.c'], 25b8e80941Smrg command : [ 26b8e80941Smrg prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--outdir', 27b8e80941Smrg meson.current_build_dir() 28b8e80941Smrg ], 29b8e80941Smrg depend_files : files('tu_extensions.py'), 30b8e80941Smrg) 31b8e80941Smrg 32b8e80941Smrgtu_extensions_c = custom_target( 33b8e80941Smrg 'tu_extensions.c', 34b8e80941Smrg input : ['tu_extensions.py', vk_api_xml], 35b8e80941Smrg output : ['tu_extensions.c', 'tu_extensions.h'], 36b8e80941Smrg command : [ 37b8e80941Smrg prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--out-c', '@OUTPUT0@', 38b8e80941Smrg '--out-h', '@OUTPUT1@' 39b8e80941Smrg ], 40b8e80941Smrg) 41b8e80941Smrg 42b8e80941Smrgtu_format_table_c = custom_target( 43b8e80941Smrg 'tu_format_table.c', 44b8e80941Smrg input : ['vk_format_table.py', 'vk_format_layout.csv'], 45b8e80941Smrg output : 'vk_format_table.c', 46b8e80941Smrg command : [prog_python, '@INPUT@'], 47b8e80941Smrg depend_files : files('vk_format_parse.py'), 48b8e80941Smrg capture : true, 49b8e80941Smrg) 50b8e80941Smrg 51b8e80941Smrglibtu_files = files( 52b8e80941Smrg 'tu_cmd_buffer.c', 53b8e80941Smrg 'tu_cs.c', 54b8e80941Smrg 'tu_device.c', 55b8e80941Smrg 'tu_descriptor_set.c', 56b8e80941Smrg 'tu_descriptor_set.h', 57b8e80941Smrg 'tu_drm.c', 58b8e80941Smrg 'tu_fence.c', 59b8e80941Smrg 'tu_formats.c', 60b8e80941Smrg 'tu_image.c', 61b8e80941Smrg 'tu_meta_blit.c', 62b8e80941Smrg 'tu_meta_buffer.c', 63b8e80941Smrg 'tu_meta_clear.c', 64b8e80941Smrg 'tu_meta_copy.c', 65b8e80941Smrg 'tu_meta_resolve.c', 66b8e80941Smrg 'tu_pass.c', 67b8e80941Smrg 'tu_pipeline.c', 68b8e80941Smrg 'tu_pipeline_cache.c', 69b8e80941Smrg 'tu_private.h', 70b8e80941Smrg 'tu_query.c', 71b8e80941Smrg 'tu_shader.c', 72b8e80941Smrg 'tu_util.c', 73b8e80941Smrg 'tu_util.h', 74b8e80941Smrg 'tu_wsi.c', 75b8e80941Smrg 'vk_format.h', 76b8e80941Smrg) 77b8e80941Smrg 78b8e80941Smrgtu_deps = [] 79b8e80941Smrgtu_flags = [] 80b8e80941Smrg 81b8e80941Smrgif with_platform_wayland 82b8e80941Smrg tu_deps += dep_wayland_client 83b8e80941Smrg tu_flags += '-DVK_USE_PLATFORM_WAYLAND_KHR' 84b8e80941Smrg libtu_files += files('tu_wsi_wayland.c') 85b8e80941Smrgendif 86b8e80941Smrg 87b8e80941Smrglibvulkan_freedreno = shared_library( 88b8e80941Smrg 'vulkan_freedreno', 89b8e80941Smrg [libtu_files, tu_entrypoints, tu_extensions_c, tu_format_table_c], 90b8e80941Smrg include_directories : [ 91b8e80941Smrg inc_common, 92b8e80941Smrg inc_compiler, 93b8e80941Smrg inc_vulkan_wsi, 94b8e80941Smrg inc_freedreno, 95b8e80941Smrg ], 96b8e80941Smrg link_with : [ 97b8e80941Smrg libvulkan_wsi, 98b8e80941Smrg libmesa_util, 99b8e80941Smrg libfreedreno_drm, # required by ir3_shader_get_variant, which we don't use 100b8e80941Smrg libfreedreno_ir3, 101b8e80941Smrg ], 102b8e80941Smrg dependencies : [ 103b8e80941Smrg dep_dl, 104b8e80941Smrg dep_elf, 105b8e80941Smrg dep_libdrm, 106b8e80941Smrg dep_llvm, 107b8e80941Smrg dep_m, 108b8e80941Smrg dep_thread, 109b8e80941Smrg dep_valgrind, 110b8e80941Smrg idep_nir, 111b8e80941Smrg tu_deps, 112b8e80941Smrg idep_vulkan_util, 113b8e80941Smrg ], 114b8e80941Smrg c_args : [c_vis_args, no_override_init_args, tu_flags], 115b8e80941Smrg link_args : [ld_args_bsymbolic, ld_args_gc_sections], 116b8e80941Smrg install : true, 117b8e80941Smrg) 118b8e80941Smrg 119b8e80941Smrgfreedreno_icd = custom_target( 120b8e80941Smrg 'freedreno_icd', 121b8e80941Smrg input : 'tu_icd.py', 122b8e80941Smrg output : 'freedreno_icd.@0@.json'.format(host_machine.cpu()), 123b8e80941Smrg command : [ 124b8e80941Smrg prog_python, '@INPUT@', 125b8e80941Smrg '--lib-path', join_paths(get_option('prefix'), get_option('libdir')), 126b8e80941Smrg '--out', '@OUTPUT@', 127b8e80941Smrg ], 128b8e80941Smrg depend_files : files('tu_extensions.py'), 129b8e80941Smrg build_by_default : true, 130b8e80941Smrg install_dir : with_vulkan_icd_dir, 131b8e80941Smrg install : true, 132b8e80941Smrg) 133b8e80941Smrg 134b8e80941Smrgtu_dev_icd = custom_target( 135b8e80941Smrg 'tu_dev_icd', 136b8e80941Smrg input : 'tu_icd.py', 137b8e80941Smrg output : 'dev_icd.json', 138b8e80941Smrg command : [ 139b8e80941Smrg prog_python, '@INPUT@', '--lib-path', meson.current_build_dir(), 140b8e80941Smrg '--out', '@OUTPUT@' 141b8e80941Smrg ], 142b8e80941Smrg depend_files : files('tu_extensions.py'), 143b8e80941Smrg build_by_default : true, 144b8e80941Smrg install : false, 145b8e80941Smrg) 146