meta-digi/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/drm/libdrm/0001-meson-add-libdrm-vivan...

141 lines
4.5 KiB
Diff

From 45f48f8a5de59c04b0510c23853772bc970f411e Mon Sep 17 00:00:00 2001
From: Max Krummenacher <max.krummenacher@toradex.com>
Date: Thu, 9 Jan 2020 01:01:35 +0000
Subject: [PATCH] meson: add libdrm-vivante to the meson meta data
Upstream libdrm added the option to use meason as the buildsystem.
Integrate Vivante into the relevant meson build information.
Upstream-Status: Pending
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
---
meson.build | 14 +++++++++++++
meson_options.txt | 7 +++++++
vivante/meson.build | 50 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 71 insertions(+)
create mode 100644 vivante/meson.build
diff --git a/meson.build b/meson.build
index e292554a..f4740634 100644
--- a/meson.build
+++ b/meson.build
@@ -157,6 +157,15 @@ if _vc4 != 'false'
with_vc4 = _vc4 == 'true' or ['arm', 'aarch64'].contains(host_machine.cpu_family())
endif
+with_vivante = false
+_vivante = get_option('vivante')
+if _vivante == 'true'
+ if not with_atomics
+ error('libdrm_vivante requires atomics.')
+ endif
+ with_vivante = true
+endif
+
# XXX: Apparently only freebsd and dragonfly bsd actually need this (and
# gnu/kfreebsd), not openbsd and netbsd
with_libkms = false
@@ -312,6 +321,7 @@ install_headers(
'include/drm/savage_drm.h', 'include/drm/sis_drm.h',
'include/drm/tegra_drm.h', 'include/drm/vc4_drm.h',
'include/drm/via_drm.h', 'include/drm/virtgpu_drm.h',
+ 'include/drm/vivante_drm.h',
subdir : 'libdrm',
)
if with_vmwgfx
@@ -362,6 +372,9 @@ endif
if with_etnaviv
subdir('etnaviv')
endif
+if with_vivante
+ subdir('vivante')
+endif
if with_man_pages
subdir('man')
endif
@@ -382,5 +395,6 @@ message(' EXYNOS API @0@'.format(with_exynos))
message(' Freedreno API @0@ (kgsl: @1@)'.format(with_freedreno, with_freedreno_kgsl))
message(' Tegra API @0@'.format(with_tegra))
message(' VC4 API @0@'.format(with_vc4))
+message(' Vivante API @0@'.format(with_etnaviv))
message(' Etnaviv API @0@'.format(with_etnaviv))
message('')
diff --git a/meson_options.txt b/meson_options.txt
index 8af33f1c..dc69563d 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -95,6 +95,13 @@ option(
choices : ['true', 'false', 'auto'],
description : '''Enable support for vc4's KMS API.''',
)
+option(
+ 'vivante',
+ type : 'combo',
+ value : 'false',
+ choices : ['true', 'false', 'auto'],
+ description : '''Enable support for vivante's propriatary experimental KMS API.''',
+)
option(
'etnaviv',
type : 'combo',
diff --git a/vivante/meson.build b/vivante/meson.build
new file mode 100644
index 00000000..f6adb598
--- /dev/null
+++ b/vivante/meson.build
@@ -0,0 +1,50 @@
+# Copyright © 2017-2018 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+libdrm_vivante = shared_library(
+ 'drm_vivante',
+ [
+ files(
+ 'vivante_bo.c',
+ ),
+ config_file
+ ],
+ include_directories : [inc_root, inc_drm],
+ link_with : libdrm,
+ c_args : libdrm_c_args,
+ dependencies : [dep_pthread_stubs, dep_rt, dep_atomic_ops],
+ version : '1.0.0',
+ install : true,
+)
+
+pkg.generate(
+ name : 'libdrm_vivante',
+ libraries : libdrm_vivante,
+ subdirs : ['.', 'libdrm'],
+ version : meson.project_version(),
+ requires_private : 'libdrm',
+ description : 'Userspace interface to Vivante kernel DRM services',
+)
+
+ext_libdrm_vivante = declare_dependency(
+ link_with : [libdrm, libdrm_vivante],
+ include_directories : [inc_drm, include_directories('.')],
+)
--
2.20.1