From cb7c9b2a9352cc73a2d3becc0427c53c8baf153a Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Fri, 10 May 2019 18:55:54 +0100 Subject: [PATCH] vulkan: fix build dependency issue with generated files On machines with many cores, you can run into that issue : ../mesa-9999/src/vulkan/overlay-layer/overlay.cpp:42:10: fatal error: vk_enum_to_str.h: No such file or directory v2: Move declare_dependency around (Eric) Signed-off-by: Lionel Landwerlin Reported-by: Jan Ziak Cc: Reviewed-by: Eric Engestrom --- src/amd/vulkan/meson.build | 7 +++---- src/freedreno/vulkan/meson.build | 3 +-- src/intel/vulkan/meson.build | 28 ++++++++++++++-------------- src/vulkan/meson.build | 1 - src/vulkan/overlay-layer/meson.build | 6 +++--- src/vulkan/util/meson.build | 12 ++++++++++++ src/vulkan/wsi/meson.build | 4 ++-- 7 files changed, 35 insertions(+), 26 deletions(-) diff --git a/src/amd/vulkan/meson.build b/src/amd/vulkan/meson.build index 532267343d1..3a696e46e56 100644 --- a/src/amd/vulkan/meson.build +++ b/src/amd/vulkan/meson.build @@ -133,17 +133,16 @@ libvulkan_radeon = shared_library( 'vulkan_radeon', [libradv_files, radv_entrypoints, radv_extensions_c, amd_vk_format_table_c, sha1_h, xmlpool_options_h], include_directories : [ - inc_common, inc_amd, inc_amd_common, inc_compiler, inc_util, inc_vulkan_util, - inc_vulkan_wsi, + inc_common, inc_amd, inc_amd_common, inc_compiler, inc_util, inc_vulkan_wsi, ], link_with : [ - libamd_common, libamdgpu_addrlib, libvulkan_util, libvulkan_wsi, + libamd_common, libamdgpu_addrlib, libvulkan_wsi, libmesa_util, libxmlconfig ], dependencies : [ dep_llvm, dep_libdrm_amdgpu, dep_thread, dep_elf, dep_dl, dep_m, dep_valgrind, radv_deps, - idep_nir, + idep_nir, idep_vulkan_util, ], c_args : [c_vis_args, no_override_init_args, radv_flags], cpp_args : [cpp_vis_args, radv_flags], diff --git a/src/freedreno/vulkan/meson.build b/src/freedreno/vulkan/meson.build index f58aff2cbdb..a25193a8147 100644 --- a/src/freedreno/vulkan/meson.build +++ b/src/freedreno/vulkan/meson.build @@ -90,12 +90,10 @@ libvulkan_freedreno = shared_library( include_directories : [ inc_common, inc_compiler, - inc_vulkan_util, inc_vulkan_wsi, inc_freedreno, ], link_with : [ - libvulkan_util, libvulkan_wsi, libmesa_util, libfreedreno_drm, # required by ir3_shader_get_variant, which we don't use @@ -111,6 +109,7 @@ libvulkan_freedreno = shared_library( dep_valgrind, idep_nir, tu_deps, + idep_vulkan_util, ], c_args : [c_vis_args, no_override_init_args, tu_flags], link_args : [ld_args_bsymbolic, ld_args_gc_sections], diff --git a/src/intel/vulkan/meson.build b/src/intel/vulkan/meson.build index c12040c84eb..03dbd98b5a4 100644 --- a/src/intel/vulkan/meson.build +++ b/src/intel/vulkan/meson.build @@ -98,14 +98,15 @@ foreach g : [['70', ['gen7_cmd_buffer.c']], ['75', ['gen7_cmd_buffer.c']], 'anv_gen@0@'.format(_gen), [anv_gen_files, g[1], anv_entrypoints[0], anv_extensions_h], include_directories : [ - inc_common, inc_compiler, inc_include, inc_intel, inc_vulkan_util, - inc_vulkan_wsi, + inc_common, inc_compiler, inc_include, inc_intel, inc_vulkan_wsi, ], c_args : [ c_vis_args, no_override_init_args, c_sse2_args, '-DGEN_VERSIONx10=@0@'.format(_gen), ], - dependencies : [dep_libdrm, dep_valgrind, idep_nir_headers, idep_genxml], + dependencies : [ + dep_libdrm, dep_valgrind, idep_nir_headers, idep_genxml, idep_vulkan_util_headers, + ], ) endforeach @@ -144,6 +145,7 @@ anv_deps = [ dep_libdrm, dep_valgrind, idep_nir_headers, + idep_vulkan_util_headers, ] anv_flags = [ c_vis_args, @@ -183,7 +185,7 @@ libanv_common = static_library( gen_xml_pack, ], include_directories : [ - inc_common, inc_intel, inc_compiler, inc_include, inc_vulkan_util, + inc_common, inc_intel, inc_compiler, inc_include, inc_vulkan_wsi, ], c_args : anv_flags, @@ -194,16 +196,15 @@ libvulkan_intel = shared_library( 'vulkan_intel', [files('anv_gem.c'), anv_entrypoints[0], anv_extensions_h], include_directories : [ - inc_common, inc_intel, inc_compiler, inc_include, inc_vulkan_util, - inc_vulkan_wsi, + inc_common, inc_intel, inc_compiler, inc_include, inc_vulkan_wsi, ], link_whole : [libanv_common, libanv_gen_libs], link_with : [ libintel_compiler, libintel_common, libintel_dev, libisl, libblorp, - libvulkan_util, libvulkan_wsi, libmesa_util, + libvulkan_wsi, libmesa_util, ], dependencies : [ - dep_thread, dep_dl, dep_m, anv_deps, idep_nir, idep_genxml, + dep_thread, dep_dl, dep_m, anv_deps, idep_nir, idep_genxml, idep_vulkan_util ], c_args : anv_flags, link_args : ['-Wl,--build-id=sha1', ld_args_bsymbolic, ld_args_gc_sections], @@ -215,16 +216,15 @@ if with_tests 'vulkan_intel_test', [files('anv_gem_stubs.c'), anv_entrypoints[0], anv_extensions_h], include_directories : [ - inc_common, inc_intel, inc_compiler, inc_include, inc_vulkan_util, - inc_vulkan_wsi, + inc_common, inc_intel, inc_compiler, inc_include, inc_vulkan_wsi, ], link_whole : libanv_common, link_with : [ libanv_gen_libs, libintel_compiler, libintel_common, libintel_dev, - libisl, libblorp, libvulkan_util, libvulkan_wsi, libmesa_util, + libisl, libblorp, libvulkan_wsi, libmesa_util, ], dependencies : [ - dep_thread, dep_dl, dep_m, anv_deps, idep_nir, + dep_thread, dep_dl, dep_m, anv_deps, idep_nir, idep_vulkan_util ], c_args : anv_flags, ) @@ -239,9 +239,9 @@ if with_tests ['tests/@0@.c'.format(t), anv_entrypoints[0], anv_extensions_h], c_args : [ c_sse2_args ], link_with : libvulkan_intel_test, - dependencies : [dep_libdrm, dep_thread, dep_m, dep_valgrind], + dependencies : [dep_libdrm, dep_thread, dep_m, dep_valgrind, idep_vulkan_util, ], include_directories : [ - inc_common, inc_intel, inc_compiler, inc_vulkan_util, inc_vulkan_wsi, + inc_common, inc_intel, inc_compiler, inc_vulkan_wsi, ], ), suite : ['intel'], diff --git a/src/vulkan/meson.build b/src/vulkan/meson.build index 3d4f80e2e39..afd2911e83d 100644 --- a/src/vulkan/meson.build +++ b/src/vulkan/meson.build @@ -20,7 +20,6 @@ vk_api_xml = files('registry/vk.xml') -inc_vulkan_util = include_directories('util') inc_vulkan_wsi = include_directories('wsi') vulkan_wsi_args = [] diff --git a/src/vulkan/overlay-layer/meson.build b/src/vulkan/overlay-layer/meson.build index 3fd3a105b89..326e2004b53 100644 --- a/src/vulkan/overlay-layer/meson.build +++ b/src/vulkan/overlay-layer/meson.build @@ -41,10 +41,10 @@ vklayer_mesa_overlay = shared_library( vklayer_files, overlay_spv, c_args : [c_vis_args, no_override_init_args, vulkan_wsi_args], cpp_args : [cpp_vis_args, vulkan_wsi_args], - dependencies : [vulkan_wsi_deps, libimgui_core_dep, dep_dl], - include_directories : [inc_common, inc_vulkan_util], + dependencies : [idep_vulkan_util, vulkan_wsi_deps, libimgui_core_dep, dep_dl], + include_directories : inc_common, link_args : cc.get_supported_link_arguments(['-Wl,-Bsymbolic-functions', '-Wl,-z,relro']), - link_with : [libmesa_util, libvulkan_util], + link_with : libmesa_util, install : true ) diff --git a/src/vulkan/util/meson.build b/src/vulkan/util/meson.build index db09482e3a7..84a44862495 100644 --- a/src/vulkan/util/meson.build +++ b/src/vulkan/util/meson.build @@ -44,3 +44,15 @@ libvulkan_util = static_library( c_args : [c_vis_args, vulkan_wsi_args], build_by_default : false, ) + +idep_vulkan_util_headers = declare_dependency( + sources : vk_enum_to_str[1], + include_directories : include_directories('.') +) + +idep_vulkan_util = declare_dependency( + sources : vk_enum_to_str[1], + link_with : libvulkan_util, + include_directories : include_directories('.'), + dependencies : idep_vulkan_util_headers +) diff --git a/src/vulkan/wsi/meson.build b/src/vulkan/wsi/meson.build index 1f8ada56962..01b5f39da4b 100644 --- a/src/vulkan/wsi/meson.build +++ b/src/vulkan/wsi/meson.build @@ -41,9 +41,9 @@ endif libvulkan_wsi = static_library( 'vulkan_wsi', files_vulkan_wsi, - include_directories : [inc_common, inc_vulkan_util, inc_include], + include_directories : [inc_common, inc_include], link_with: [libxmlconfig], - dependencies : [vulkan_wsi_deps, dep_libdrm], + dependencies : [vulkan_wsi_deps, dep_libdrm, idep_vulkan_util], c_args : [c_vis_args, vulkan_wsi_args], build_by_default : false, ) -- 2.30.2