From 916c9335b41fab51ec17b2bbb918de732461e426 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 6 Oct 2021 09:32:17 -0500 Subject: [PATCH] meson: Add and use an idep for Vulkan WSI Acked-by: Chia-I Wu Part-of: --- src/amd/vulkan/meson.build | 7 +++--- src/broadcom/vulkan/meson.build | 6 ++--- src/freedreno/vulkan/meson.build | 5 +--- src/gallium/drivers/zink/meson.build | 7 ++++-- src/gallium/frontends/lavapipe/meson.build | 5 ++-- src/intel/vulkan/meson.build | 29 +++++++++++++--------- src/panfrost/vulkan/meson.build | 5 ++-- src/virtio/vulkan/meson.build | 4 +-- src/vulkan/device-select-layer/meson.build | 7 ++++-- src/vulkan/meson.build | 1 - src/vulkan/wsi/meson.build | 9 +++++++ 11 files changed, 50 insertions(+), 35 deletions(-) diff --git a/src/amd/vulkan/meson.build b/src/amd/vulkan/meson.build index a99f00fd2e7..2437d2bce7e 100644 --- a/src/amd/vulkan/meson.build +++ b/src/amd/vulkan/meson.build @@ -150,15 +150,16 @@ libvulkan_radeon = shared_library( [libradv_files, radv_entrypoints, sha1_h], vs_module_defs : vulkan_radv_def, include_directories : [ - inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_amd, inc_amd_common, inc_amd_common_llvm, inc_compiler, inc_util, inc_vulkan_wsi, + inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_amd, inc_amd_common, inc_amd_common_llvm, inc_compiler, inc_util, ], link_with : [ - libamd_common, libamd_common_llvm, libamdgpu_addrlib, libvulkan_wsi, + libamd_common, libamd_common_llvm, libamdgpu_addrlib, ], dependencies : [ dep_llvm, dep_libdrm_amdgpu, dep_thread, dep_elf, dep_dl, dep_m, dep_valgrind, radv_deps, idep_aco, - idep_mesautil, idep_nir, idep_vulkan_util, idep_amdgfxregs_h, idep_xmlconfig, + idep_mesautil, idep_nir, idep_vulkan_util, idep_vulkan_wsi, + idep_amdgfxregs_h, idep_xmlconfig, ], c_args : [no_override_init_args, radv_flags, c_msvc_compat_args], cpp_args : [radv_flags, cpp_msvc_compat_args], diff --git a/src/broadcom/vulkan/meson.build b/src/broadcom/vulkan/meson.build index 1a01482372d..11995a7ccbd 100644 --- a/src/broadcom/vulkan/meson.build +++ b/src/broadcom/vulkan/meson.build @@ -85,6 +85,7 @@ v3dv_deps = [ idep_nir, idep_nir_headers, idep_vulkan_util, + idep_vulkan_wsi, ] if with_platform_x11 @@ -109,7 +110,7 @@ foreach ver : v3d_versions [files_per_version, v3d_xml_pack, v3dv_entrypoints[0]], include_directories : [ inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_broadcom, - inc_compiler, inc_util, inc_vulkan_wsi, + inc_compiler, inc_util, ], c_args : [v3dv_flags, '-DV3D_VERSION=' + ver], gnu_symbol_visibility : 'hidden', @@ -121,12 +122,11 @@ libvulkan_broadcom = shared_library( 'vulkan_broadcom', [libv3dv_files, v3dv_entrypoints, sha1_h], include_directories : [ - inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_broadcom, inc_compiler, inc_util, inc_vulkan_wsi, + inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_broadcom, inc_compiler, inc_util, ], link_with : [ libbroadcom_cle, libbroadcom_v3d, - libvulkan_wsi, per_version_libs, ], dependencies : v3dv_deps, diff --git a/src/freedreno/vulkan/meson.build b/src/freedreno/vulkan/meson.build index e1365eb828a..ec63bf5dbfa 100644 --- a/src/freedreno/vulkan/meson.build +++ b/src/freedreno/vulkan/meson.build @@ -56,7 +56,6 @@ libtu_files = files( tu_deps = [] tu_flags = [] -tu_link_with = [] tu_wsi = false @@ -79,7 +78,6 @@ endif if tu_wsi libtu_files += 'tu_wsi.c' - tu_link_with += libvulkan_wsi endif if with_platform_android @@ -129,11 +127,9 @@ libvulkan_freedreno = shared_library( inc_gallium, inc_gallium_aux, inc_compiler, - inc_vulkan_wsi, inc_freedreno, ], link_with : [ - tu_link_with, libfreedreno_ir3, libfreedreno_layout, libfreedreno_perfcntrs, @@ -148,6 +144,7 @@ libvulkan_freedreno = shared_library( idep_nir, tu_deps, idep_vulkan_util, + idep_vulkan_wsi, idep_mesautil, ], c_args : [no_override_init_args, tu_flags], diff --git a/src/gallium/drivers/zink/meson.build b/src/gallium/drivers/zink/meson.build index 8da0092bbce..9dafc4f9692 100644 --- a/src/gallium/drivers/zink/meson.build +++ b/src/gallium/drivers/zink/meson.build @@ -92,8 +92,11 @@ libzink = static_library( 'zink', [files_libzink, zink_device_info, zink_instance, zink_nir_algebraic_c, vk_dispatch_table], gnu_symbol_visibility : 'hidden', - include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_vulkan_wsi, inc_vulkan_util, inc_zink_vk], - dependencies: [dep_vulkan, idep_nir_headers, idep_mesautil, idep_vulkan_util_headers, dep_libdrm], + include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_vulkan_util, inc_zink_vk], + dependencies: [ + dep_vulkan, idep_nir_headers, idep_mesautil, idep_vulkan_util_headers, + idep_vulkan_wsi_headers, dep_libdrm + ], c_args: zink_c_args, ) diff --git a/src/gallium/frontends/lavapipe/meson.build b/src/gallium/frontends/lavapipe/meson.build index 7bb9fe8df12..4fc38ff308e 100644 --- a/src/gallium/frontends/lavapipe/meson.build +++ b/src/gallium/frontends/lavapipe/meson.build @@ -58,9 +58,8 @@ endif liblavapipe_st = static_library( 'lavapipe_st', [liblvp_files, lvp_entrypoints, lvp_commands, sha1_h], - link_with : [ libvulkan_wsi ], c_args : [ c_msvc_compat_args, lvp_flags ], gnu_symbol_visibility : 'hidden', - include_directories : [ inc_include, inc_src, inc_util, inc_gallium, inc_compiler, inc_gallium_aux, inc_vulkan_wsi ], - dependencies : [ idep_nir, idep_mesautil, idep_vulkan_util, lvp_deps ] + include_directories : [ inc_include, inc_src, inc_util, inc_gallium, inc_compiler, inc_gallium_aux ], + dependencies : [ idep_nir, idep_mesautil, idep_vulkan_util, idep_vulkan_wsi, lvp_deps ] ) diff --git a/src/intel/vulkan/meson.build b/src/intel/vulkan/meson.build index 90ff0a02329..ac385a61a94 100644 --- a/src/intel/vulkan/meson.build +++ b/src/intel/vulkan/meson.build @@ -67,7 +67,7 @@ foreach g : [['70', ['gfx7_cmd_buffer.c']], ['75', ['gfx7_cmd_buffer.c']], 'anv_per_hw_ver@0@'.format(_gfx_ver), [anv_per_hw_ver_files, g[1], anv_entrypoints[0]], include_directories : [ - inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_compiler, inc_intel, inc_vulkan_wsi, + inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_compiler, inc_intel, ], c_args : [ no_override_init_args, c_sse2_args, @@ -75,7 +75,8 @@ foreach g : [['70', ['gfx7_cmd_buffer.c']], ['75', ['gfx7_cmd_buffer.c']], ], gnu_symbol_visibility : 'hidden', dependencies : [ - dep_libdrm, dep_valgrind, idep_nir_headers, idep_genxml, idep_vulkan_util_headers, + dep_libdrm, dep_valgrind, idep_nir_headers, idep_genxml, + idep_vulkan_util_headers, idep_vulkan_wsi_headers, ], ) endforeach @@ -117,6 +118,7 @@ anv_deps = [ idep_genxml, idep_nir_headers, idep_vulkan_util_headers, + idep_vulkan_wsi_headers, ] anv_flags = [ no_override_init_args, @@ -155,7 +157,7 @@ libanv_common = static_library( ], include_directories : [ inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_intel, inc_compiler, - inc_vulkan_wsi, inc_util, + inc_util, ], c_args : anv_flags, gnu_symbol_visibility : 'hidden', @@ -166,16 +168,16 @@ libvulkan_intel = shared_library( 'vulkan_intel', [files('anv_gem.c'), anv_entrypoints[0]], include_directories : [ - inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_intel, inc_compiler, inc_vulkan_wsi, + inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_intel, inc_compiler, ], link_whole : [libanv_common, libanv_per_hw_ver_libs], link_with : [ - libintel_compiler, libintel_dev, libisl, libblorp, libvulkan_wsi, - libintel_perf, + libintel_compiler, libintel_dev, libisl, libblorp, libintel_perf, ], dependencies : [ dep_thread, dep_dl, dep_m, anv_deps, idep_libintel_common, - idep_nir, idep_genxml, idep_vulkan_util, idep_mesautil, idep_xmlconfig, + idep_nir, idep_genxml, idep_vulkan_util, idep_vulkan_wsi, + idep_mesautil, idep_xmlconfig, ], c_args : anv_flags, gnu_symbol_visibility : 'hidden', @@ -201,16 +203,16 @@ if with_tests 'vulkan_intel_test', [files('anv_gem_stubs.c'), anv_entrypoints[0]], include_directories : [ - inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_intel, inc_compiler, inc_vulkan_wsi, + inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_intel, inc_compiler, ], link_whole : libanv_common, link_with : [ libanv_per_hw_ver_libs, libintel_compiler, libintel_common, libintel_dev, - libisl, libblorp, libvulkan_wsi, libintel_perf, + libisl, libblorp, libintel_perf, ], dependencies : [ dep_thread, dep_dl, dep_m, anv_deps, - idep_nir, idep_vulkan_util, idep_mesautil, + idep_nir, idep_vulkan_util, idep_vulkan_wsi, idep_mesautil, ], c_args : anv_flags, gnu_symbol_visibility : 'hidden', @@ -226,9 +228,12 @@ if with_tests ['tests/@0@.c'.format(t), anv_entrypoints[0]], c_args : [ c_sse2_args ], link_with : libvulkan_intel_test, - dependencies : [dep_libdrm, dep_thread, dep_m, dep_valgrind, idep_vulkan_util, ], + dependencies : [ + dep_libdrm, dep_thread, dep_m, dep_valgrind, + idep_vulkan_util, idep_vulkan_wsi_headers, + ], include_directories : [ - inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_intel, inc_compiler, inc_vulkan_wsi, + inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_intel, inc_compiler, ], ), suite : ['intel'], diff --git a/src/panfrost/vulkan/meson.build b/src/panfrost/vulkan/meson.build index 07f2fca25fb..6d6514ad22c 100644 --- a/src/panfrost/vulkan/meson.build +++ b/src/panfrost/vulkan/meson.build @@ -80,13 +80,13 @@ foreach arch : ['5', '6', '7'] inc_compiler, inc_gallium, # XXX: pipe/p_format.h inc_gallium_aux, # XXX: renderonly - inc_vulkan_wsi, inc_panfrost, ], dependencies : [ idep_nir_headers, idep_pan_packers, idep_vulkan_util_headers, + idep_vulkan_wsi_headers, dep_libdrm, dep_valgrind, ], @@ -113,12 +113,10 @@ libvulkan_panfrost = shared_library( inc_compiler, inc_gallium, # XXX: pipe/p_format.h inc_gallium_aux, # XXX: renderonly - inc_vulkan_wsi, inc_panfrost, ], link_whole : [panvk_per_arch_libs], link_with : [ - libvulkan_wsi, libpanfrost_shared, libpanfrost_midgard, libpanfrost_bifrost, @@ -137,6 +135,7 @@ libvulkan_panfrost = shared_library( idep_pan_packers, panvk_deps, idep_vulkan_util, + idep_vulkan_wsi, idep_mesautil, ], c_args : [no_override_init_args, panvk_flags], diff --git a/src/virtio/vulkan/meson.build b/src/virtio/vulkan/meson.build index 9ce40dfd883..3990dffdeae 100644 --- a/src/virtio/vulkan/meson.build +++ b/src/virtio/vulkan/meson.build @@ -56,6 +56,7 @@ vn_deps = [ dep_thread, idep_mesautil, idep_vulkan_util, + idep_vulkan_wsi, idep_xmlconfig, ] @@ -68,7 +69,6 @@ vn_libs = [] if with_platform_wayland or with_platform_x11 libvn_files += files('vn_wsi.c') vn_flags += '-DVN_USE_WSI_PLATFORM' - vn_libs += libvulkan_wsi endif if with_platform_wayland @@ -90,7 +90,7 @@ libvulkan_virtio = shared_library( 'vulkan_virtio', [libvn_files, vn_entrypoints, sha1_h], include_directories : [ - inc_include, inc_src, inc_vulkan_wsi, inc_virtio, + inc_include, inc_src, inc_virtio, ], link_with : vn_libs, dependencies : [vn_deps], diff --git a/src/vulkan/device-select-layer/meson.build b/src/vulkan/device-select-layer/meson.build index 9b6747bf090..b0fc05bd79c 100644 --- a/src/vulkan/device-select-layer/meson.build +++ b/src/vulkan/device-select-layer/meson.build @@ -41,8 +41,11 @@ vklayer_mesa_device_select = shared_library( vklayer_files, c_args : [no_override_init_args, vklayer_flags], gnu_symbol_visibility : 'hidden', - dependencies : [idep_vulkan_util, idep_mesautil, vklayer_deps, dep_libdrm, dep_dl], - include_directories : [inc_include, inc_util, inc_src, inc_vulkan_wsi], + dependencies : [ + idep_vulkan_util, idep_vulkan_wsi_headers, idep_mesautil, vklayer_deps, + dep_libdrm, dep_dl + ], + include_directories : [inc_include, inc_util, inc_src], link_args : cc.get_supported_link_arguments(['-Wl,-Bsymbolic-functions', '-Wl,-z,relro']), install : true ) diff --git a/src/vulkan/meson.build b/src/vulkan/meson.build index f087804ffbe..65280502295 100644 --- a/src/vulkan/meson.build +++ b/src/vulkan/meson.build @@ -21,7 +21,6 @@ vk_api_xml = files('registry/vk.xml') vulkan_icd_symbols = files('vulkan-icd-symbols.txt') -inc_vulkan_wsi = include_directories('wsi') inc_vulkan_util = include_directories('util') vulkan_wsi_args = [] diff --git a/src/vulkan/wsi/meson.build b/src/vulkan/wsi/meson.build index 6900b0d971a..3b3abf7b815 100644 --- a/src/vulkan/wsi/meson.build +++ b/src/vulkan/wsi/meson.build @@ -53,3 +53,12 @@ libvulkan_wsi = static_library( gnu_symbol_visibility : 'hidden', build_by_default : false, ) + +idep_vulkan_wsi_headers = declare_dependency( + include_directories : include_directories('.') +) + +idep_vulkan_wsi = declare_dependency( + link_with : libvulkan_wsi, + dependencies : idep_vulkan_wsi_headers +)