summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMateusz Majewski <m.majewski2@samsung.com>2024-04-26 13:07:15 +0200
committerMateusz Majewski <m.majewski2@samsung.com>2024-04-29 11:02:15 +0200
commita7267d052c508510bd0e9c27bbcf4868e36dc0f7 (patch)
tree7992e6ccf75b18984cfec8ac6bd1e26a2af7b0cf
parentf4639df508fcf0f8a397d69e0f9039ed33318460 (diff)
downloadmesa-sandbox/mmajewski2/gbm_mesa_static.tar.gz
mesa-sandbox/mmajewski2/gbm_mesa_static.tar.bz2
mesa-sandbox/mmajewski2/gbm_mesa_static.zip
Build and package libgbm as a static librarysandbox/mmajewski2/gbm_mesa_static
-rw-r--r--packaging/mesa.spec29
-rw-r--r--src/gbm/meson.build22
2 files changed, 33 insertions, 18 deletions
diff --git a/packaging/mesa.spec b/packaging/mesa.spec
index fdcdbbb0fe0..dbc8d3458ff 100644
--- a/packaging/mesa.spec
+++ b/packaging/mesa.spec
@@ -44,12 +44,8 @@ ExclusiveArch:
%define vulkan_drivers ""
%define dri_drivers ""
%else
-%define USE_GBM 0
%define USE_VULKAN 1
%define VULKAN_DRIVER broadcom
-%if %{USE_GBM} == 1
-%enable_driver gbm
-%endif
%if %{USE_VULKAN} == 1
%enable_driver vulkan
%endif
@@ -57,7 +53,7 @@ ExclusiveArch:
%define vulkan_drivers "%{?enable_vulkan:%{VULKAN_DRIVER}}"
%define dri_drivers "auto"
%endif
-
+%enable_driver gbm
%description
Mesa is a 3-D graphics library with an API which is very similar to
@@ -74,6 +70,16 @@ just Mesa or The Mesa 3-D graphics library.
* OpenGL is a trademark of Silicon Graphics Incorporated.
+%package -n libgbm-mesa-devel
+Summary: Mesa's GBM
+Group: System/Libraries
+Requires: %{name}
+%description -n libgbm-mesa-devel
+Mesa's GBM, built as a static library. This should not be confused with
+Tizen-specific GBM, available elsewhere. If in doubt, you probably want
+to use Tizen-specific GBM, which fits Tizen rendering stack better.
+This should only be used in driver code.
+
%prep
%setup -q -n %{name}-%{version}
cp %{SOURCE1001} .
@@ -117,6 +123,9 @@ cp 99-GPU-Acceleration.rules %{buildroot}%{_hal_libdir}/udev/rules.d
mkdir -p %{buildroot}%{_hal_prefix}/share/licenses/%{name}
cp COPYING %{buildroot}%{_hal_prefix}/share/licenses/%{name}/
+mkdir -p %{buildroot}%{_libdir}/pkgconfig
+mv %{buildroot}%{_hal_libdir}/pkgconfig/gbm_mesa.pc %{buildroot}%{_libdir}/pkgconfig/gbm_mesa.pc
+
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
@@ -128,11 +137,15 @@ cp COPYING %{buildroot}%{_hal_prefix}/share/licenses/%{name}/
%{_hal_libdir}/libglapi*
%{_hal_libdir}/driver/*
%{_hal_libdir}/dri/*
-%if "%{USE_GBM}" == "1"
-%{_hal_libdir}/libgbm*
-%endif
%if "%{USE_VULKAN}" == "1"
%{_hal_libdir}/libvulkan_%{VULKAN_DRIVER}.so
%{_hal_prefix}/share/vulkan/icd.d/*
%endif
%{_hal_libdir}/udev/rules.d/99-GPU-Acceleration.rules
+
+%files -n libgbm-mesa-devel
+%manifest %{name}.manifest
+%defattr(-,root,root)
+%{_libdir}/pkgconfig/gbm_mesa.pc
+%{_hal_prefix}/include/gbm.h
+%{_hal_libdir}/libgbm_mesa.a
diff --git a/src/gbm/meson.build b/src/gbm/meson.build
index df65361aef7..7bd422dcb9f 100644
--- a/src/gbm/meson.build
+++ b/src/gbm/meson.build
@@ -45,13 +45,14 @@ if with_platform_wayland
incs_gbm += inc_wayland_drm
endif
-libgbm_name = 'gbm'
-
-if with_platform_android and get_option('platform-sdk-version') >= 30
- libgbm_name = 'gbm_mesa'
-endif
-
-libgbm = shared_library(
+# Tizen-specific note: upstream Mesa builds as 'gbm' on all targets except
+# Android (where they use 'gbm_mesa', just as we do). Also, they build as a
+# shared library and not a static library. We do those two changes, as Tizen
+# has its own libgbm library. It is not really used as of writing, but
+# application code should always use that and not Mesa's libgbm. However, we
+# need Mesa's libgbm for driver code: we use it to implement a TBM backend.
+libgbm_name = 'gbm_mesa'
+libgbm = static_library(
libgbm_name,
files_gbm,
include_directories : incs_gbm,
@@ -60,7 +61,6 @@ libgbm = shared_library(
link_with : libloader,
dependencies : [deps_gbm, dep_dl, dep_thread, idep_mesautil, idep_xmlconfig],
gnu_symbol_visibility : 'hidden',
- version : '1.0.0',
install : true,
)
@@ -72,8 +72,10 @@ endif
install_headers('main/gbm.h')
pkg.generate(
- name : 'gbm',
- filebase : 'gbm',
+ # Tizen-specific note: upstream Mesa uses just 'gbm' here. This only really
+ # changes anything when they build for Android though.
+ name : libgbm_name,
+ filebase : libgbm_name,
description : 'Mesa gbm library',
version : meson.project_version(),
libraries : libgbm,