summaryrefslogtreecommitdiff
path: root/libixion.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-09-13 10:57:27 +0000
committerCoprDistGit <infra@openeuler.org>2023-09-13 10:57:27 +0000
commitb837031a1377a9a1dce881ef67c86bd8024aec5a (patch)
treee008bd7714a0a8bce02b553e524e25eafc814b75 /libixion.spec
parent4381b2fb52f27b9e378e4bbed87a64a112e53d7c (diff)
automatic import of libixionopeneuler23.03
Diffstat (limited to 'libixion.spec')
-rw-r--r--libixion.spec127
1 files changed, 127 insertions, 0 deletions
diff --git a/libixion.spec b/libixion.spec
new file mode 100644
index 0000000..d899e50
--- /dev/null
+++ b/libixion.spec
@@ -0,0 +1,127 @@
+%global apiversion 0.17
+
+Name: libixion
+Version: 0.17.0
+Release: 1
+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 gcc-c++ help2man automake make pkgconfig(mdds-2.0) pkgconfig(python3) pkgconfig(spdlog)
+
+%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_help
+
+%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
+
+%files python3
+%{python3_sitearch}/ixion.so
+
+%files help
+%license LICENSE
+%doc doc/python
+%{_mandir}/man1/ixion-formula-tokenizer.1*
+%{_mandir}/man1/ixion-parser.1*
+%{_mandir}/man1/ixion-sorter.1*
+
+%changelog
+* Wed Sep 06 2023 Darssin <2020303249@mail.nwpu.edu.cn> - 0.17.0-1
+- Package init