Files
ceres-solver/scripts/ceres-solver.spec
T
Taylor Braun-Jones 70701745b8 Add RPM .spec file
Tested on RHEL6.1 (with epel repository for dependencies).

make_release checks that that the version string in the .spec file is in
sync with the rest of the project and reminds the user to bump the
release string if necessary and to build/upload the RPM package.

Change-Id: I5f454f2a7301d1e0e120cb3c0e13a68d03bca917
2013-02-25 02:56:17 -05:00

113 lines
3.0 KiB
RPMSpec

Name: ceres-solver
Version: 1.5.0
# Release candidate versions are messy. Give them a release of
# e.g. "0.1.0%{?dist}" for RC1 (and remember to adjust the Source0
# URL). Non-RC releases go back to incrementing integers starting at 1.
Release: 0.1.0%{?dist}
Summary: A non-linear least squares minimizer
Group: Development/Libraries
License: BSD
URL: http://code.google.com/p/ceres-solver/
Source0: http://%{name}.googlecode.com/files/%{name}-%{version}rc1.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%if (0%{?rhel} <= 6)
BuildRequires: cmake28
%else
BuildRequires: cmake
%endif
BuildRequires: eigen3-devel
BuildRequires: suitesparse-devel
# Use atlas for BLAS and LAPACK
BuildRequires: atlas-devel
BuildRequires: protobuf-devel
BuildRequires: gflags-devel
BuildRequires: glog-devel
%description
Ceres Solver is a portable C++ library that allows for modeling and solving
large complicated nonlinear least squares problems. Features include:
- A friendly API: build your objective function one term at a time
- Automatic differentiation
- Robust loss functions
- Local parameterizations
- Threaded Jacobian evaluators and linear solvers
- Levenberg-Marquardt and Dogleg (Powell & Subspace) solvers
- Dense QR and Cholesky factorization (using Eigen) for small problems
- Sparse Cholesky factorization (using SuiteSparse) for large sparse problems
- Specialized solvers for bundle adjustment problems in computer vision
- Iterative linear solvers for general sparse and bundle adjustment problems
- Runs on Linux, Windows, Mac OS X and Android. An iOS port is underway
Notable use of Ceres Solver is for the image alignment in Google Maps and for
vehicle pose in Google Street View.
%package devel
Summary: A non-linear least squares minimizer
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%prep
%setup -q
%build
mkdir build
pushd build
# Disable the compilation flags that rpmbuild macros try to apply to all
# packages because it breaks the build since release 1.5.0rc1
%define optflags ""
%if (0%{?rhel} <= 6)
%{cmake28} .. \
%else
%{cmake} .. \
%endif
-DBLAS_LIB:FILEPATH=%{_libdir}/atlas/libatlas.so \
-DLAPACK_LIB:FILEPATH=%{_libdir}/atlas/liblapack.so
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
pushd build
make install DESTDIR=$RPM_BUILD_ROOT
find $RPM_BUILD_ROOT -name '*.la' -delete
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
%doc
%{_libdir}/*.so.*
%files devel
%defattr(-,root,root,-)
%doc
%{_includedir}/*
%{_libdir}/*.so
%{_libdir}/*.a
%changelog
* Sun Feb 24 2013 Taylor Braun-Jones <taylor@braun-jones.org> - 1.5.0-0.1.0
- Bump version.
* Sun Oct 14 2012 Taylor Braun-Jones <taylor@braun-jones.org> - 1.4.0-0
- Initial creation