diff --git a/meson.build b/meson.build index 2b1b68f87b9..237bb3477ab 100644 --- a/meson.build +++ b/meson.build @@ -1567,11 +1567,17 @@ foreach d : _libdrm_checks endforeach with_gallium_drisw_kms = false -dep_libdrm = dependency( - 'libdrm', version : '>=' + _drm_ver, - # GNU/Hurd includes egl_dri2, without drm. - required : (with_dri2 and host_machine.system() != 'gnu') or with_dri3 -) +if system_has_kms_drm + dep_libdrm = dependency( + 'libdrm', version : '>=' + _drm_ver, + # GNU/Hurd includes egl_dri2, without drm. + required : (with_dri2 and host_machine.system() != 'gnu') or with_dri3 + ) +else + # We should prevent libdrm from being available when the target doesn't have it to avoid transitive + # dependencies (such as vk-runtime) linking to it + dep_libdrm = null_dep +endif if dep_libdrm.found() pre_args += '-DHAVE_LIBDRM' if with_dri_platform == 'drm' and with_dri diff --git a/src/freedreno/vulkan/meson.build b/src/freedreno/vulkan/meson.build index 2441b281fec..b12d5dd04e0 100644 --- a/src/freedreno/vulkan/meson.build +++ b/src/freedreno/vulkan/meson.build @@ -67,11 +67,6 @@ if with_xlib_lease tu_deps += [dep_xlib_xrandr] endif -if not system_has_kms_drm - # Even if libdrm is available we shouldn't use it in KGSL-only build - tu_flags += '-UHAVE_LIBDRM' -endif - if freedreno_kmds.contains('kgsl') tu_flags += '-DTU_HAS_KGSL' libtu_files += files('tu_knl_kgsl.c')