File media-driver.spec of Package intel-media-driver

%define realname media-driver
%define realver  25.3.2
%define srcext   tar.gz

%define cmrt_version 7.2.0
%define cmrt_so_ver  7

# Common info
Name:          intel-media-driver%{?so_ver}
Version:       %{realver}
Release:       wiz%{?extraver:0.}1%{?dist}
License:       MIT and BSD-3-Clause
Group:         System/Libraries
URL:           https://github.com/intel/media-driver
Summary:       Intel(R) Media Driver for VAAPI

# Build-time parameters
BuildRequires: cmake >= 3.5
BuildRequires: ninja
BuildRequires: pkgconfig
BuildRequires: gcc-c++
BuildRequires: libva-devel >= 2.4.0
BuildRequires: libpciaccess-devel
#BuildRequires: pkgconfig(igdgmm)
BuildRequires: libigdgmm-devel >= 12.0.0
BuildRoot:     %{_tmppath}/%{name}-root
Source0:       https://github.com/intel/media-driver/archive/refs/tags/intel-media-%{realver}%{?extraver}.%{srcext}#/%{realname}-%{realver}%{?extraver}.%{srcext}

%description
The Intel(R) Media Driver for VAAPI is a new VA-API (Video Acceleration API)
user mode driver supporting hardware accelerated decoding, encoding, and video
post processing for GEN based graphics hardware.

%package -n libigfxcmrt%{?cmrt_so_ver}
License:       MIT
Group:         System/Libraries
Summary:       Intel(R) C for Media Runtime
Provides:      cmrtlib = %{version}-%{release}
Provides:      intel-cmrtlib = %{version}-%{release}

%description -n libigfxcmrt%{?cmrt_so_ver}
cmrtlib is a runtime library needed when user wants to execute their own GPU
kernels on render engine. It calls iHD media driver to load the kernels and
allocate the resources. It provides a set of APIs for user to call directly
from application.

%package -n libigfxcmrt-devel
License:       MIT
Group:         Development/Languages/C and C++
Summary:       Development files for the Intel(R) C for Media Runtime
Requires:      libigfxcmrt%{?cmrt_so_ver} = %{version}-%{release}
Provides:      libigfxcmrt%{?cmrt_so_ver}-devel = %{version}-%{release}
Provides:      cmrtlib-devel = %{version}-%{release}
Provides:      intel-cmrtlib-devel = %{version}-%{release}

%description -n libigfxcmrt-devel
cmrtlib is a runtime library needed when user wants to execute their own GPU
kernels on render engine. It calls iHD media driver to load the kernels and
allocate the resources. It provides a set of APIs for user to call directly
from application.

This package provides headers and libraries required for building software using
the Intel(R) C for Media Runtime.

# Preparation step (unpackung and patching if necessary)
%prep
%setup -q -n %{realname}-intel-media-%{realver}%{?extraver}
%{__chmod} a-x LICENSE.md README.md

# Build step (compile/build binaries, documentation, etc)
%build
_CFLAGS='%{optflags} %{?gcc_lto} -Wno-error=overloaded-virtual='
_LDFLAGS='-Wl,--as-needed -Wl,--strip-all -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro %{?gcc_lto}'
_CMAKE_ARGS=(
 -G Ninja \
 -DCMAKE_INSTALL_PREFIX=%{_prefix}
 -DCMAKE_INSTALL_SYSCONFDIR=%{_sysconfdir}
 -DCMAKE_INSTALL_LIBDIR=%{_libdir}
 -DCMAKE_BUILD_TYPE=Release
 -DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS"
 -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS"
 -DCMAKE_EXE_LINKER_FLAGS_RELEASE="$_LDFLAGS"
 -DCMAKE_MODULE_LINKER_FLAGS_RELEASE="$_LDFLAGS"
 -DCMAKE_SHARED_LINKER_FLAGS_RELEASE="$_LDFLAGS"
 -DCMAKE_VERBOSE_MAKEFILE=YES
 -DCMAKE_POLICY_VERSION_MINIMUM=3.5
)
cmake -S . -B tmp_build \
 "${_CMAKE_ARGS[@]}" \
 \
 -DBUILD_TYPE=Release \
 -DMEDIA_VERSION=%{version} \
 -DINSTALL_DRIVER_SYSCONF=YES \
 -DMEDIA_RUN_TEST_SUITE=NO
ninja -v -C tmp_build %{?_smp_mflags}

# Install built stuff
%install
DESTDIR=%{buildroot} ninja -v -C tmp_build install

# Files list
%files
%defattr(-,root,root)
%license LICENSE.md
%doc README.md
%config(noreplace) %{_sysconfdir}/profile.d/intel-media.sh
%dir %{_libdir}/dri
%{_libdir}/dri/*.so*

%files -n libigfxcmrt%{?cmrt_so_ver}
%defattr(-,root,root)
%doc cmrtlib/README.md
%{_libdir}/*.so.%{?cmrt_so_ver}*

%files -n libigfxcmrt-devel
%defattr(-,root,root)
%doc cmrtlib/README.md
%{_includedir}/igfxcmrt/
%{_libdir}/*.so
%{_libdir}/pkgconfig/igfxcmrt.pc

%post   -n libigfxcmrt%{?cmrt_so_ver} -p /sbin/ldconfig
%postun -n libigfxcmrt%{?cmrt_so_ver} -p /sbin/ldconfig

%changelog
openSUSE Build Service is sponsored by