diff options
author | Mateusz Majewski <m.majewski2@samsung.com> | 2024-04-26 13:07:15 +0200 |
---|---|---|
committer | Mateusz Majewski <m.majewski2@samsung.com> | 2024-04-29 11:02:15 +0200 |
commit | a7267d052c508510bd0e9c27bbcf4868e36dc0f7 (patch) | |
tree | 7992e6ccf75b18984cfec8ac6bd1e26a2af7b0cf | |
parent | f4639df508fcf0f8a397d69e0f9039ed33318460 (diff) | |
download | mesa-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.spec | 29 | ||||
-rw-r--r-- | src/gbm/meson.build | 22 |
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, |