Browse Source

adding rpm spec and build script.

pull/650/head
Igal Alkon 2 years ago
parent
commit
01f0bdb007
  1. 6
      package/rpm/README.md
  2. 24
      package/rpm/build.sh
  3. 109
      package/rpm/magnum.spec

6
package/rpm/README.md

@ -0,0 +1,6 @@
# Magnum RPM Package
You will need to install the following dependencies for build rpms (Fedora Linux):
```
sudo dnf install fedora-packager rpmdevtools gcc
```

24
package/rpm/build.sh

@ -0,0 +1,24 @@
#!/bin/sh
# get version slug
version_hash=$(git describe --match "v*" | sed 's/^v//' | sed 's/-/./g')
echo "** repository hash: ${version_hash} ..."
# create dir tree for rpmbuild in user dir
rpmdev-setuptree
# archive reository
(cd ../.. && git archive --format=tar.gz --prefix=magnum-${version_hash}/ -o ~/rpmbuild/SOURCES/magnum-${version_hash}.tar.gz HEAD)
echo "** created archive: ~/rpmbuild/SOURCES/magnum-${version_hash}.tar.gz"
sleep 2
# replace spec version
spec_file="magnum.spec"
sed -i "s/Version:.\+/Version: ${version_hash}/g" ${spec_file}
echo "** building package version: ${version_hash}"
# check dependencies
sudo dnf builddep -y ${spec_file}
# build package
rpmbuild --define "debug_package %{nil}" --clean -ba ${spec_file}

109
package/rpm/magnum.spec

@ -0,0 +1,109 @@
Name: magnum
URL: http://magnum.graphics
Version: 2020.06.2972.g8b832382a
Release: 1
Summary: C++11/C++14 graphics middleware for games and data visualization
License: MIT
Source: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
Requires: corrade, openal-soft, mesa-libGL, mesa-libEGL, SDL2, glfw, vulkan-loader, glslang
BuildRequires: cmake, git, gcc-c++, openal-soft-devel, mesa-libGL-devel, mesa-libEGL-devel, SDL2-devel, glfw-devel, vulkan-loader-devel, glslang-devel
# Fedora 35 also seems to need the mesa-vulkan-devel package
%description
Looking for an open-source library that gives you graphics abstraction
and platform independence on major desktop, mobile and web platforms?
Do you want it to have all the convenience utilities around yet stay small,
powerful and not give up on flexibility?
%package devel
Summary: Magnum development files
Requires: %{name} = %{version}
%description devel
Headers and tools needed for developing with Magnum engine.
%prep
%setup -c -n %{name}-%{version}
%build
mkdir build && cd build
# Configure CMake
cmake ../%{name}-%{version} \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
-DMAGNUM_WITH_AUDIO=ON \
-DMAGNUM_WITH_VK=ON \
-DMAGNUM_WITH_GLFWAPPLICATION=ON \
-DMAGNUM_WITH_GLXAPPLICATION=ON \
-DMAGNUM_WITH_SDL2APPLICATION=ON \
-DMAGNUM_WITH_XEGLAPPLICATION=ON \
-DMAGNUM_WITH_WINDOWLESSGLXAPPLICATION=ON \
-DMAGNUM_WITH_WINDOWLESSEGLAPPLICATION=ON \
-DMAGNUM_WITH_EGLCONTEXT=ON \
-DMAGNUM_WITH_GLXCONTEXT=ON \
-DMAGNUM_WITH_OPENGLTESTER=ON \
-DMAGNUM_WITH_ANYAUDIOIMPORTER=ON \
-DMAGNUM_WITH_ANYIMAGECONVERTER=ON \
-DMAGNUM_WITH_ANYIMAGEIMPORTER=ON \
-DMAGNUM_WITH_ANYSCENECONVERTER=ON \
-DMAGNUM_WITH_ANYSCENEIMPORTER=ON \
-DMAGNUM_WITH_ANYSHADERCONVERTER=ON \
-DMAGNUM_WITH_MAGNUMFONT=ON \
-DMAGNUM_WITH_MAGNUMFONTCONVERTER=ON \
-DMAGNUM_WITH_OBJIMPORTER=ON \
-DMAGNUM_WITH_TGAIMAGECONVERTER=ON \
-DMAGNUM_WITH_TGAIMPORTER=ON \
-DMAGNUM_WITH_WAVAUDIOIMPORTER=ON \
-DMAGNUM_WITH_DISTANCEFIELDCONVERTER=ON \
-DMAGNUM_WITH_FONTCONVERTER=ON \
-DMAGNUM_WITH_IMAGECONVERTER=ON \
-DMAGNUM_WITH_SCENECONVERTER=ON \
-DMAGNUM_WITH_SHADERCONVERTER=ON \
-DMAGNUM_WITH_GL_INFO=ON \
-DMAGNUM_WITH_VK_INFO=ON \
-DMAGNUM_WITH_AL_INFO=ON \
-DMAGNUM_BUILD_TESTS=OFF \
-DMAGNUM_BUILD_GL_TESTS=OFF \
-DMAGNUM_BUILD_AL_TESTS=OFF \
-DMAGNUM_BUILD_VK_TESTS=OFF
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
strip $RPM_BUILD_ROOT/%{_libdir}/*.so*
strip $RPM_BUILD_ROOT/%{_libdir}/magnum-d/*/*.so*
strip $RPM_BUILD_ROOT/%{_bindir}/*
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%{_libdir}/*.a
%{_libdir}/*.so*
%{_libdir}/magnum-d/*/*.so*
%{_libdir}/magnum-d/*/*.conf
%doc %{name}-%{version}/COPYING
%files devel
%defattr(-,root,root,-)
%{_bindir}/*
%{_includedir}/Magnum
%{_includedir}/MagnumExternal
%{_includedir}/MagnumPlugins
%{_datadir}/cmake/Magnum
%{_datadir}/gdb
%changelog
* Initial release.
Loading…
Cancel
Save