138 lines
4 KiB
RPMSpec
138 lines
4 KiB
RPMSpec
%global apiversion 0.18
|
|
|
|
Name: libixion
|
|
Version: 0.19.0
|
|
Release: %autorelease
|
|
Summary: A general purpose formula parser & interpreter library
|
|
|
|
License: MPL-2.0
|
|
URL: https://gitlab.com/ixion/ixion
|
|
Source0: https://kohei.us/files/ixion/src/%{name}-%{version}.tar.xz
|
|
|
|
BuildRequires: boost-devel
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: help2man
|
|
BuildRequires: automake
|
|
BuildRequires: pkgconfig(mdds-2.1)
|
|
BuildRequires: pkgconfig(python3)
|
|
BuildRequires: pkgconfig(spdlog)
|
|
BuildRequires: make
|
|
|
|
%description
|
|
Ixion is a general purpose formula parser & interpreter that can calculate
|
|
multiple named targets, or "cells".
|
|
|
|
The goal of this project is to create a library for calculating the results of
|
|
formula expressions stored in multiple named targets, or “cells”. The cells can
|
|
be referenced from each other, and the library takes care of resolving their
|
|
dependencies automatically upon calculation. The caller can run the calculation
|
|
routine either in a single-threaded mode, or a multi-threaded mode. The library
|
|
also supports re-calculations where the contents of one or more cells have been
|
|
modified since the last calculation, and a partial calculation of only the
|
|
affected cells need to be calculated.
|
|
|
|
Supported features:
|
|
- Each calculation session is defined in a plain text file, which is parsed and
|
|
interpreted by the Ixion parser.
|
|
- Fully threaded calculation.
|
|
- Name resolution using A1-style references.
|
|
- Support 2D cell references and named expressions.
|
|
- Support range references.
|
|
- Dependency tracking during both full calculation and partial re-calculation.
|
|
- Inline strings.
|
|
- Volatile functions. The framework for volatile functions is implemented. We
|
|
just need to implement more functions.
|
|
|
|
%package devel
|
|
Summary: Development files for %{name}
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
%description devel
|
|
The %{name}-devel package contains libraries and header files for
|
|
developing applications that use %{name}.
|
|
|
|
%package tools
|
|
Summary: Testing tools for libixion
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
%description tools
|
|
Testing tools for %{name}.
|
|
|
|
%package python3
|
|
Summary: Python 3 bindings for libixion
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
Obsoletes: %{name}-python < 0.9.1-1
|
|
Suggests: %{name}-doc = %{version}-%{release}
|
|
|
|
%description python3
|
|
Python 3 bindings for %{name}.
|
|
|
|
%package doc
|
|
Summary: API documentation for %{name}
|
|
BuildArch: noarch
|
|
|
|
%description doc
|
|
API documentation for %{name}.
|
|
|
|
%prep
|
|
%autosetup -p1
|
|
|
|
%build
|
|
autoreconf
|
|
%configure --disable-silent-rules --disable-static
|
|
sed -i \
|
|
-e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
|
|
-e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
|
|
libtool
|
|
make %{?_smp_mflags}
|
|
|
|
%install
|
|
make install DESTDIR=%{buildroot}
|
|
rm -f %{buildroot}%{_libdir}/*.la %{buildroot}%{python3_sitearch}/*.la
|
|
|
|
# create and install man pages
|
|
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
|
help2man -S '%{name} %{version}' -N -n 'formula tokenizer' -o ixion-formula-tokenizer.1 ./src/ixion-formula-tokenizer
|
|
help2man -S '%{name} %{version}' -N -n 'parser' -o ixion-parser.1 ./src/ixion-parser
|
|
help2man -S '%{name} %{version}' -N -n 'sorter' -o ixion-sorter.1 ./src/ixion-sorter
|
|
install -m 0755 -d %{buildroot}/%{_mandir}/man1
|
|
install -m 0644 ixion-*.1 %{buildroot}/%{_mandir}/man1
|
|
|
|
# generate docs
|
|
# make doc
|
|
|
|
%ldconfig_scriptlets
|
|
|
|
%check
|
|
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
|
%ifnarch %{ix86}
|
|
make %{?_smp_mflags} check
|
|
%endif
|
|
|
|
%files
|
|
%doc AUTHORS
|
|
%license LICENSE
|
|
%{_libdir}/%{name}-%{apiversion}.so.*
|
|
|
|
%files devel
|
|
%{_includedir}/%{name}-%{apiversion}
|
|
%{_libdir}/%{name}-%{apiversion}.so
|
|
%{_libdir}/pkgconfig/%{name}-%{apiversion}.pc
|
|
|
|
%files tools
|
|
%{_bindir}/ixion-formula-tokenizer
|
|
%{_bindir}/ixion-parser
|
|
%{_bindir}/ixion-sorter
|
|
%{_mandir}/man1/ixion-formula-tokenizer.1*
|
|
%{_mandir}/man1/ixion-parser.1*
|
|
%{_mandir}/man1/ixion-sorter.1*
|
|
|
|
%files python3
|
|
%{python3_sitearch}/ixion.so
|
|
|
|
%files doc
|
|
%license LICENSE
|
|
%doc doc/python
|
|
|
|
%changelog
|
|
%autochangelog
|