meson: Add a GBM backends search path build option

This is the list of locations where GBM will look
for alternate backend implementations based on the
DRM driver name. It defaults to $libdir/gbm.

On Android, this path is currently hard-coded to
/vendor/lib[64]/gbm.

Signed-off-by: James Jones <jajones@nvidia.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902>
This commit is contained in:
James Jones 2021-04-22 23:18:49 -07:00 committed by Marge Bot
parent bc343154f8
commit 7f615c66fb
4 changed files with 22 additions and 2 deletions

View File

@ -118,6 +118,9 @@ LOCAL_CFLAGS += -DHAVE_LIBDRM
LOCAL_SHARED_LIBRARIES += libdrm
endif
LOCAL_CFLAGS_32 += -DDEFAULT_BACKENDS_PATH=\"/vendor/lib/gbm\"
LOCAL_CFLAGS_64 += -DDEFAULT_BACKENDS_PATH=\"/vendor/lib64/gbm\"
LOCAL_CFLAGS_32 += -DDEFAULT_DRIVER_DIR=\"/vendor/lib/$(MESA_DRI_MODULE_REL_PATH)\"
LOCAL_CFLAGS_64 += -DDEFAULT_DRIVER_DIR=\"/vendor/lib64/$(MESA_DRI_MODULE_REL_PATH)\"
LOCAL_PROPRIETARY_MODULE := true

View File

@ -92,6 +92,11 @@ if dri_search_path == ''
dri_search_path = dri_drivers_path
endif
gbm_backends_path = get_option('gbm-backends-path')
if gbm_backends_path == ''
gbm_backends_path = join_paths(get_option('prefix'), get_option('libdir'), 'gbm')
endif
with_gles1 = get_option('gles1')
if with_gles1 == 'true'
with_gles1 = 'enabled'
@ -2162,7 +2167,6 @@ if with_egl
endif
lines += 'EGL drivers: ' + ' '.join(egl_drivers)
endif
lines += 'GBM: ' + (with_gbm ? 'yes' : 'no')
if with_egl or with_any_vk
_platforms += 'surfaceless'
if with_gbm and not with_platform_android
@ -2170,6 +2174,10 @@ if with_egl or with_any_vk
endif
lines += 'EGL/Vulkan/VL platforms: ' + ' '.join(_platforms)
endif
lines += 'GBM: ' + (with_gbm ? 'yes' : 'no')
if with_gbm
lines += 'GBM backends path: ' + gbm_backends_path
endif
lines += ''
if with_any_vk

View File

@ -270,6 +270,12 @@ option(
choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
description : 'Build support for gbm platform'
)
option(
'gbm-backends-path',
type : 'string',
value : '',
description : 'Locations to search for gbm backends, passed as colon separated list. Default: $libdir/gbm.'
)
option(
'glx',
type : 'combo',

View File

@ -28,7 +28,9 @@ files_gbm = files(
'main/gbmint.h',
)
deps_gbm = []
args_gbm = []
args_gbm = [
'-DDEFAULT_BACKENDS_PATH="@0@"'.format(gbm_backends_path),
]
deps_gbm = []
incs_gbm = [
include_directories('main'), inc_include, inc_src, inc_loader,
@ -70,6 +72,7 @@ pkg.generate(
version : meson.project_version(),
libraries : libgbm,
libraries_private : gbm_priv_libs,
variables : ['gbmbackendspath=' + gbm_backends_path],
)
if with_symbols_check