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 21b8e80941Smrgradv_entrypoints = custom_target( 22b8e80941Smrg 'radv_entrypoints.[ch]', 23b8e80941Smrg input : ['radv_entrypoints_gen.py', vk_api_xml], 24b8e80941Smrg output : ['radv_entrypoints.h', 'radv_entrypoints.c'], 25b8e80941Smrg command : [ 26b8e80941Smrg prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--outdir', 27b8e80941Smrg meson.current_build_dir() 28b8e80941Smrg ], 29b8e80941Smrg depend_files : files('radv_extensions.py'), 30b8e80941Smrg) 31b8e80941Smrg 32b8e80941Smrgradv_extensions_c = custom_target( 33b8e80941Smrg 'radv_extensions.c', 34b8e80941Smrg input : ['radv_extensions.py', vk_api_xml], 35b8e80941Smrg output : ['radv_extensions.c', 'radv_extensions.h'], 36b8e80941Smrg command : [ 37b8e80941Smrg prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--out-c', '@OUTPUT0@', 38b8e80941Smrg '--out-h', '@OUTPUT1@' 39b8e80941Smrg ], 40b8e80941Smrg) 41b8e80941Smrg 42b8e80941Smrgamd_vk_format_table_c = custom_target( 43b8e80941Smrg 'amd_vk_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 51b8e80941Smrglibradv_files = files( 52b8e80941Smrg 'winsys/amdgpu/radv_amdgpu_bo.c', 53b8e80941Smrg 'winsys/amdgpu/radv_amdgpu_bo.h', 54b8e80941Smrg 'winsys/amdgpu/radv_amdgpu_cs.c', 55b8e80941Smrg 'winsys/amdgpu/radv_amdgpu_cs.h', 56b8e80941Smrg 'winsys/amdgpu/radv_amdgpu_surface.c', 57b8e80941Smrg 'winsys/amdgpu/radv_amdgpu_surface.h', 58b8e80941Smrg 'winsys/amdgpu/radv_amdgpu_winsys.c', 59b8e80941Smrg 'winsys/amdgpu/radv_amdgpu_winsys.h', 60b8e80941Smrg 'winsys/amdgpu/radv_amdgpu_winsys_public.h', 61b8e80941Smrg 'radv_cmd_buffer.c', 62b8e80941Smrg 'radv_cs.h', 63b8e80941Smrg 'radv_debug.c', 64b8e80941Smrg 'radv_debug.h', 65b8e80941Smrg 'radv_device.c', 66b8e80941Smrg 'radv_descriptor_set.c', 67b8e80941Smrg 'radv_descriptor_set.h', 68b8e80941Smrg 'radv_formats.c', 69b8e80941Smrg 'radv_image.c', 70b8e80941Smrg 'radv_llvm_helper.cpp', 71b8e80941Smrg 'radv_meta.c', 72b8e80941Smrg 'radv_meta.h', 73b8e80941Smrg 'radv_meta_blit.c', 74b8e80941Smrg 'radv_meta_blit2d.c', 75b8e80941Smrg 'radv_meta_buffer.c', 76b8e80941Smrg 'radv_meta_bufimage.c', 77b8e80941Smrg 'radv_meta_clear.c', 78b8e80941Smrg 'radv_meta_copy.c', 79b8e80941Smrg 'radv_meta_decompress.c', 80b8e80941Smrg 'radv_meta_fast_clear.c', 81b8e80941Smrg 'radv_meta_fmask_expand.c', 82b8e80941Smrg 'radv_meta_resolve.c', 83b8e80941Smrg 'radv_meta_resolve_cs.c', 84b8e80941Smrg 'radv_meta_resolve_fs.c', 85b8e80941Smrg 'radv_nir_lower_ycbcr_textures.c', 86b8e80941Smrg 'radv_nir_to_llvm.c', 87b8e80941Smrg 'radv_pass.c', 88b8e80941Smrg 'radv_pipeline.c', 89b8e80941Smrg 'radv_pipeline_cache.c', 90b8e80941Smrg 'radv_private.h', 91b8e80941Smrg 'radv_radeon_winsys.h', 92b8e80941Smrg 'radv_shader.c', 93b8e80941Smrg 'radv_shader.h', 94b8e80941Smrg 'radv_shader_helper.h', 95b8e80941Smrg 'radv_shader_info.c', 96b8e80941Smrg 'radv_query.c', 97b8e80941Smrg 'radv_util.c', 98b8e80941Smrg 'radv_util.h', 99b8e80941Smrg 'radv_wsi.c', 100b8e80941Smrg 'si_cmd_buffer.c', 101b8e80941Smrg 'vk_format.h', 102b8e80941Smrg) 103b8e80941Smrg 104b8e80941Smrgradv_deps = [] 105b8e80941Smrgradv_flags = [] 106b8e80941Smrg 107b8e80941Smrgif with_platform_x11 108b8e80941Smrg radv_deps += dep_xcb_dri3 109b8e80941Smrg radv_flags += [ 110b8e80941Smrg '-DVK_USE_PLATFORM_XCB_KHR', 111b8e80941Smrg '-DVK_USE_PLATFORM_XLIB_KHR', 112b8e80941Smrg ] 113b8e80941Smrg libradv_files += files('radv_wsi_x11.c') 114b8e80941Smrgendif 115b8e80941Smrg 116b8e80941Smrgif with_platform_wayland 117b8e80941Smrg radv_deps += dep_wayland_client 118b8e80941Smrg radv_flags += '-DVK_USE_PLATFORM_WAYLAND_KHR' 119b8e80941Smrg libradv_files += files('radv_wsi_wayland.c') 120b8e80941Smrgendif 121b8e80941Smrg 122b8e80941Smrgif with_platform_drm 123b8e80941Smrg radv_flags += '-DVK_USE_PLATFORM_DISPLAY_KHR' 124b8e80941Smrg libradv_files += files('radv_wsi_display.c') 125b8e80941Smrgendif 126b8e80941Smrg 127b8e80941Smrgif with_xlib_lease 128b8e80941Smrg radv_deps += [dep_xcb_xrandr, dep_xlib_xrandr] 129b8e80941Smrg radv_flags += '-DVK_USE_PLATFORM_XLIB_XRANDR_EXT' 130b8e80941Smrgendif 131b8e80941Smrg 132b8e80941Smrgif with_platform_android 133b8e80941Smrg radv_flags += [ 134b8e80941Smrg '-DVK_USE_PLATFORM_ANDROID_KHR' 135b8e80941Smrg ] 136b8e80941Smrg libradv_files += files('radv_android.c') 137b8e80941Smrgendif 138b8e80941Smrg 139b8e80941Smrglibvulkan_radeon = shared_library( 140b8e80941Smrg 'vulkan_radeon', 141b8e80941Smrg [libradv_files, radv_entrypoints, radv_extensions_c, amd_vk_format_table_c, sha1_h, xmlpool_options_h], 142b8e80941Smrg include_directories : [ 143b8e80941Smrg inc_common, inc_amd, inc_amd_common, inc_compiler, inc_util, inc_vulkan_wsi, 144b8e80941Smrg ], 145b8e80941Smrg link_with : [ 146b8e80941Smrg libamd_common, libamdgpu_addrlib, libvulkan_wsi, 147b8e80941Smrg libmesa_util, libxmlconfig 148b8e80941Smrg ], 149b8e80941Smrg dependencies : [ 150b8e80941Smrg dep_llvm, dep_libdrm_amdgpu, dep_thread, dep_elf, dep_dl, dep_m, 151b8e80941Smrg dep_valgrind, radv_deps, 152b8e80941Smrg idep_nir, idep_vulkan_util, 153b8e80941Smrg ], 154b8e80941Smrg c_args : [c_vis_args, no_override_init_args, radv_flags], 155b8e80941Smrg cpp_args : [cpp_vis_args, radv_flags], 156b8e80941Smrg link_args : [ld_args_bsymbolic, ld_args_gc_sections], 157b8e80941Smrg install : true, 158b8e80941Smrg) 159b8e80941Smrg 160b8e80941Smrgradeon_icd = custom_target( 161b8e80941Smrg 'radeon_icd', 162b8e80941Smrg input : 'radv_icd.py', 163b8e80941Smrg output : 'radeon_icd.@0@.json'.format(host_machine.cpu()), 164b8e80941Smrg command : [ 165b8e80941Smrg prog_python, '@INPUT@', 166b8e80941Smrg '--lib-path', join_paths(get_option('prefix'), get_option('libdir')), 167b8e80941Smrg '--out', '@OUTPUT@', 168b8e80941Smrg ], 169b8e80941Smrg depend_files : files('radv_extensions.py'), 170b8e80941Smrg build_by_default : true, 171b8e80941Smrg install_dir : with_vulkan_icd_dir, 172b8e80941Smrg install : true, 173b8e80941Smrg) 174b8e80941Smrg 175b8e80941Smrgradv_dev_icd = custom_target( 176b8e80941Smrg 'radv_dev_icd', 177b8e80941Smrg input : 'radv_icd.py', 178b8e80941Smrg output : 'dev_icd.json', 179b8e80941Smrg command : [ 180b8e80941Smrg prog_python, '@INPUT@', '--lib-path', meson.current_build_dir(), 181b8e80941Smrg '--out', '@OUTPUT@' 182b8e80941Smrg ], 183b8e80941Smrg depend_files : files('radv_extensions.py'), 184b8e80941Smrg build_by_default : true, 185b8e80941Smrg install : false, 186b8e80941Smrg) 187