From 45f48f8a5de59c04b0510c23853772bc970f411e Mon Sep 17 00:00:00 2001 From: Max Krummenacher 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 --- 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