mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2024-11-24 16:00:56 +00:00
loader: ifdef libdrm specific code and include
Mesa provides the flexibility of building without the
need to have libdrm present on the system. The situation
has regressed with the recent commit
commit 8c2e7fd846
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date: Fri Jan 10 23:36:16 2014 +0000
loader: introduce the loader util lib
By isolating libdrm code by #ifndef __NOT_HAVE_DRM_H we
can have libdrm-less builds on across all build systems.
This patch converts Android's _EGL_NO_DRM to __NOT_HAVE_DRM_H
to provide consistency with the other cases within mesa, allows
compilation of libloader on libdrm-less scons and conditionally
links against libdrm if present under automake.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73776
BUgzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73777
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
a33d1339d5
commit
26d380da69
@ -1935,6 +1935,7 @@ AM_CONDITIONAL(HAVE_MESA_LLVM, test x$MESA_LLVM = x1)
|
||||
AC_SUBST([ELF_LIB])
|
||||
|
||||
AM_CONDITIONAL(DRICOMMON_NEED_LIBDRM, test "x$DRICOMMON_NEED_LIBDRM" = xyes)
|
||||
AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes)
|
||||
AM_CONDITIONAL(HAVE_X11_DRIVER, test "x$enable_xlib_glx" = xyes)
|
||||
AM_CONDITIONAL(HAVE_OSMESA, test "x$enable_osmesa" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_OSMESA, test "x$enable_gallium_osmesa" = xyes)
|
||||
|
@ -35,7 +35,7 @@ LOCAL_SRC_FILES := \
|
||||
|
||||
# swrast only
|
||||
ifeq ($(MESA_GPU_DRIVERS),swrast)
|
||||
LOCAL_CFLAGS += -D_EGL_NO_DRM
|
||||
LOCAL_CFLAGS += -D__NOT_HAVE_DRM_H
|
||||
else
|
||||
LOCAL_C_INCLUDES += \
|
||||
$(DRM_TOP)/include/drm \
|
||||
|
@ -27,11 +27,20 @@ libloader_la_CPPFLAGS = \
|
||||
$(DEFINES) \
|
||||
-I$(top_srcdir)/include \
|
||||
$(VISIBILITY_CFLAGS) \
|
||||
$(LIBDRM_CFLAGS) \
|
||||
$(LIBUDEV_CFLAGS)
|
||||
|
||||
libloader_la_LIBADD = \
|
||||
$(LIBDRM_LIBS) \
|
||||
$(LIBUDEV_LIBS)
|
||||
|
||||
if !HAVE_LIBDRM
|
||||
libloader_la_CPPFLAGS += \
|
||||
-D__NOT_HAVE_DRM_H
|
||||
else
|
||||
libloader_la_CPPFLAGS += \
|
||||
$(LIBDRM_CFLAGS)
|
||||
|
||||
libloader_la_LIBADD += \
|
||||
$(LIBDRM_LIBS)
|
||||
endif
|
||||
|
||||
libloader_la_SOURCES = $(LOADER_C_FILES)
|
||||
|
@ -1,15 +1,12 @@
|
||||
Import('*')
|
||||
|
||||
if not env['drm']:
|
||||
Return()
|
||||
|
||||
env = env.Clone()
|
||||
|
||||
env.Prepend(CPPPATH = [
|
||||
'#include'
|
||||
])
|
||||
|
||||
env.PkgUseModules('DRM')
|
||||
env.Append(CPPDEFINES = ['__NOT_HAVE_DRM_H'])
|
||||
|
||||
if env['udev']:
|
||||
env.PkgUseModules('UDEV')
|
||||
|
@ -69,7 +69,9 @@
|
||||
#include <string.h>
|
||||
#include "loader.h"
|
||||
|
||||
#ifndef __NOT_HAVE_DRM_H
|
||||
#include <xf86drm.h>
|
||||
#endif
|
||||
|
||||
#define __IS_LOADER
|
||||
#include "pci_ids/pci_id_driver_map.h"
|
||||
@ -149,7 +151,7 @@ out:
|
||||
return (*chip_id >= 0);
|
||||
}
|
||||
|
||||
#elif defined(ANDROID) && !defined(_EGL_NO_DRM)
|
||||
#elif defined(ANDROID) && !defined(__NOT_HAVE_DRM_H)
|
||||
|
||||
/* for i915 */
|
||||
#include <i915_drm.h>
|
||||
@ -267,6 +269,8 @@ loader_get_driver_for_fd(int fd, unsigned driver_types)
|
||||
driver_types = _LOADER_GALLIUM | _LOADER_DRI;
|
||||
|
||||
if (!loader_get_pci_id_for_fd(fd, &vendor_id, &chip_id)) {
|
||||
|
||||
#ifndef __NOT_HAVE_DRM_H
|
||||
/* fallback to drmGetVersion(): */
|
||||
drmVersionPtr version = drmGetVersion(fd);
|
||||
|
||||
@ -279,6 +283,7 @@ loader_get_driver_for_fd(int fd, unsigned driver_types)
|
||||
log(_LOADER_INFO, "using driver %s for %d", driver, fd);
|
||||
|
||||
drmFreeVersion(version);
|
||||
#endif
|
||||
|
||||
return driver;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user