travelccm/travelccm.spec

121 lines
3.6 KiB
RPMSpec

#
Name: travelccm
Version: 1.00.8
Release: %autorelease
Summary: C++ Travel Customer Choice Model (CCM) Library
License: LGPL-2.1-or-later
URL: https://github.com/airsim/%{name}
Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
BuildRequires: gcc-c++
BuildRequires: cmake
BuildRequires: boost-devel
BuildRequires: soci-mysql-devel
BuildRequires: soci-sqlite3-devel
BuildRequires: pkgconfig(readline)
BuildRequires: pkgconfig(stdair)
%description
%{name} aims at providing a clean API, and the corresponding
C++ implementation, for choosing one item among a set of travel
solutions, given demand-related characteristics (e.g.,
Willingness-To-Pay, preferred airline, preferred cabin, etc.).
The %{name} C++ library implements some simple Customer Choice Models
(CCM), as referenced in the literature (PhD dissertations at MIT, for
instance: https://dspace.mit.edu).
The %{name} C++ library exposes a simple, clean and object-oriented,
API. For instance, the choose() method takes, as input, both a
structure representing the travel request (e.g., "from Washington, DC,
US, to Beijing, China, on the 25th of May") and a list of travel
solutions (as provided by the Airline Travel Solution Provider (AirTSP)
project: https://github.com/airsim/airtsp), and yields, as output, the
chosen item.
The output can then be used by other systems, for instance to book the
corresponding travel or to visualize it on a map and calendar and to
share it with others.
%{name} makes an extensive use of existing open-source libraries for
increased functionality, speed and accuracy. In particular the
Boost (C++ Standard Extensions: https://www.boost.org) library is used.
Install the %{name} package if you need a library of basic C++ objects
for Customer-Choice Modeling (CCM), mainly for simulation purpose.
%package devel
Summary: Header files, libraries and development helper tools for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: pkgconfig
%description devel
This package contains the header files, shared libraries and
development helper tools for %{name}. If you would like to develop
programs using %{name}, you will need to install %{name}-devel.
%package doc
Summary: HTML documentation for the %{name} library
BuildArch: noarch
BuildRequires: tex(latex)
BuildRequires: texlive-epstopdf
BuildRequires: doxygen
BuildRequires: ghostscript
%description doc
This package contains HTML pages, as well as a PDF reference manual,
for %{name}. All that documentation is generated thanks to Doxygen
(https://doxygen.org). The content is the same as what can be browsed
online (https://github.com/airsim/%{name}).
%prep
%autosetup
%build
%cmake
%cmake_build
%install
%cmake_install
# Remove the installer generated by Doxygen
rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}/html/installdox
# Remove additional documentation files (those files are already available
# in the project top directory)
rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}/{NEWS,README.md,AUTHORS}
%check
%ctest
%files
%license COPYING
%doc AUTHORS ChangeLog NEWS README.md
%{_bindir}/%{name}
%{_libdir}/lib%{name}.so.*
%{_mandir}/man1/%{name}.1.*
%files devel
%{_includedir}/%{name}/
%{_bindir}/%{name}-config
%{_libdir}/lib%{name}.so
%{_libdir}/pkgconfig/%{name}.pc
%{_datadir}/aclocal/%{name}.m4
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/CMake/
%{_mandir}/man1/%{name}-config.1.*
%{_mandir}/man3/%{name}-library.3.*
%files doc
%doc %{_docdir}/%{name}/
%license COPYING
%changelog
%autochangelog