mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-09 10:20:07 +00:00
meson: Decouple linux/dma-buf.h and libdrm checks
Currently dmabuf_dep is found when the following conditions are met: - linux/dma-buf.h is present; - libdrm is found. This is because Linux dmabuf support requires drm_fourcc.h which is part of libdrm. However, dmabuf_dep is used for two purposes: - define HAVE_DMABUF to state dmabuf support; - ensure the presence of drm_fourcc.h for gdk and for the media-gstreamer module. Decouple this, unconditionally check for libdrm and require it on Linux. Then, use libdrm_dep only to state the drm_fourcc.h presence. Given that now we unconditionally require libdrm on Linux, HAVE_DMABUF depends only on the linux/dma-buf.h presence.
This commit is contained in:
parent
eb34311c2c
commit
b6767d2eef
@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "config.h"
|
||||
#ifdef HAVE_DMABUF
|
||||
#ifdef HAVE_DRM_FOURCC_H
|
||||
#include <drm_fourcc.h>
|
||||
#endif
|
||||
|
||||
|
@ -219,7 +219,7 @@ gdk_deps = [
|
||||
platform_gio_dep,
|
||||
pangocairo_dep,
|
||||
vulkan_dep,
|
||||
dmabuf_dep,
|
||||
libdrm_dep,
|
||||
png_dep,
|
||||
tiff_dep,
|
||||
jpeg_dep,
|
||||
|
20
meson.build
20
meson.build
@ -628,19 +628,17 @@ else
|
||||
vulkan_pkg_found = false
|
||||
endif
|
||||
|
||||
if cc.has_header('linux/dma-buf.h')
|
||||
dmabuf_dep = dependency('libdrm',
|
||||
required: os_linux)
|
||||
else
|
||||
if os_linux
|
||||
error('OS is Linux, but linux/dma-buf.h not found.')
|
||||
endif
|
||||
dmabuf_dep = dependency('', required: false)
|
||||
endif
|
||||
cdata.set('HAVE_DMABUF', dmabuf_dep.found())
|
||||
libdrm_dep = dependency('libdrm', required: os_linux)
|
||||
# We only care about drm_fourcc.h for all the fourccs,
|
||||
# but not about linking to libdrm
|
||||
dmabuf_dep = dmabuf_dep.partial_dependency(includes: true, compile_args: true)
|
||||
libdrm_dep = libdrm_dep.partial_dependency(includes: true, compile_args: true)
|
||||
cdata.set('HAVE_DRM_FOURCC_H', libdrm_dep.found())
|
||||
|
||||
has_linux_dma_buf_h = cc.has_header('linux/dma-buf.h')
|
||||
if os_linux and not has_linux_dma_buf_h
|
||||
error('OS is Linux, but linux/dma-buf.h not found.')
|
||||
endif
|
||||
cdata.set('HAVE_DMABUF', has_linux_dma_buf_h)
|
||||
|
||||
cloudproviders_dep = dependency('cloudproviders',
|
||||
required: get_option('cloudproviders'),
|
||||
|
@ -24,7 +24,7 @@ if gstplayer_dep.found() and gstgl_dep.found()
|
||||
cdata.set('HAVE_GSTREAMER', 1)
|
||||
media_gst_deps = [ libm, libgtk_dep, gstplayer_dep, gstgl_dep ]
|
||||
|
||||
if dmabuf_dep.found() and gstdrm_dep.found()
|
||||
if libdrm_dep.found() and gstdrm_dep.found()
|
||||
cdata.set('HAVE_GSTREAMER_DRM', 1)
|
||||
media_gst_deps += [ gstdrm_dep ]
|
||||
endif
|
||||
|
Loading…
Reference in New Issue
Block a user