]>
Commit | Line | Data |
---|---|---|
63a0bbb0 BS |
1 | # |
2 | # Conditional build: | |
1b86d2d6 | 3 | %bcond_with tests # make check (takes very long time, few tests fail) |
63a0bbb0 BS |
4 | %bcond_without gdb # GDB pretty printers |
5 | ||
86cdc95d JB |
6 | Summary: C++ template library for linear algebra |
7 | Summary(pl.UTF-8): Biblioteka szablonów C++ do algebry liniowej | |
8 | Name: eigen3 | |
c115611d JB |
9 | Version: 3.4.0 |
10 | Release: 1 | |
4b09a03b | 11 | License: MPL v2.0 with LGPL v2.1+ parts |
86cdc95d | 12 | Group: Development/Libraries |
3859e214 | 13 | #Source0Download: http://eigen.tuxfamily.org/index.php?title=Main_Page |
4b09a03b | 14 | Source0: https://gitlab.com/libeigen/eigen/-/archive/%{version}/eigen-%{version}.tar.bz2 |
c115611d | 15 | # Source0-md5: 132dde48fe2b563211675626d29f1707 |
86cdc95d | 16 | URL: http://eigen.tuxfamily.org/ |
c115611d | 17 | BuildRequires: cmake >= 3.5.0 |
63a0bbb0 | 18 | %{?with_gdb:BuildRequires: python-modules} |
86cdc95d JB |
19 | BuildRequires: rpmbuild(macros) >= 1.605 |
20 | Requires: libstdc++-devel | |
e070be5f | 21 | BuildArch: noarch |
86cdc95d JB |
22 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
23 | ||
24 | %description | |
25 | Eigen is a C++ template library for linear algebra: vectors, matrices, | |
26 | and related algorithms. It is versatile, fast, elegant and | |
27 | compiler-friendly. | |
28 | ||
29 | Eigen handles, without code duplication and in a completely integrated | |
30 | way: | |
31 | - both fixed-size and dynamic-size matrices and vectors | |
32 | - both dense and sparse (the latter is still experimental) matrices | |
33 | and vectors | |
34 | - both plain matrices/vectors and abstract expressions | |
35 | - both column-major (the default) and row-major matrix storage | |
36 | - both basic matrix/vector manipulation and many more advanced, | |
37 | specialized modules providing algorithms for linear algebra, | |
38 | geometry, quaternions, or advanced array manipulation. | |
39 | ||
40 | %description -l pl.UTF-8 | |
41 | Eigen to biblioteka szablonów C++ do algebry liniowej: wektorów, | |
42 | macierzy i związanych z nimi algorytmów. Jest elastyczna, szybka, | |
43 | elegancka i przyjazna dla kompilatorów. | |
44 | ||
45 | Obsługuje bez powielania kodu i w całkowicie zintegrowany sposób: | |
46 | - macierze i wektory o stałym i dynamicznym rozmiarze | |
47 | - macierze i wektory gęste i rzadkie (te drugie jeszcze | |
48 | eksperymentalnie) | |
49 | - zwykłe macierze/wektory jak i abstrakcyjne wyrażenia | |
50 | - przechowywanie danych kolumnowe (domyślne) oraz wierszowe | |
51 | - podstawowe operacje na macierzach/wektorach, jak i wiele | |
52 | bardziej zaawansowanych, specjalizowanych modułów z algorytmami | |
53 | algebry liniowej, geometrii, kwaternionów i zaawansowanych operacji | |
54 | na tablicach. | |
55 | ||
63a0bbb0 BS |
56 | %package gdb |
57 | Summary: eigen3 pretty printers for GDB | |
58 | Summary(pl.UTF-8): Funkcje wypisujące dane eigen3 dla GDB | |
59 | Group: Development/Debuggers | |
60 | ||
61 | %description gdb | |
62 | This package contains Python scripts for GDB pretty printing of the | |
63 | eigen3 types/containers. | |
64 | To use it add: | |
65 | ||
66 | python | |
67 | from eigen3.printers import register_eigen_printers | |
68 | register_eigen_printers (None) | |
69 | end | |
70 | ||
71 | to a ~/.gdbinit file. | |
72 | ||
73 | %description gdb -l pl.UTF-8 | |
74 | Ten pakiet zawiera skrypty Pythona dla GDB służące do ładnego | |
75 | wypisywania typów i kontenerów eigen3. | |
76 | Aby użyć skryptów trzeba dodać: | |
77 | ||
78 | python | |
79 | from eigen3.printers import register_eigen_printers | |
80 | register_eigen_printers (None) | |
81 | end | |
82 | ||
83 | do pliku ~/.gdbinit . | |
84 | ||
86cdc95d | 85 | %prep |
4b09a03b | 86 | %setup -q -n eigen-%{version} |
86cdc95d JB |
87 | |
88 | %build | |
89 | install -d build | |
90 | cd build | |
db7eca4c | 91 | # CMakeLists.txt requires CMAKE_INSTALL_INCLUDEDIR to be relative (for proper .pc file generation) |
86cdc95d JB |
92 | %cmake .. \ |
93 | -DCMAKE_CXX_COMPILER_WORKS=1 \ | |
db7eca4c | 94 | -DCMAKE_CXX_COMPILER="%{__cxx}" \ |
4b09a03b | 95 | -DCMAKE_INSTALL_DATADIR:PATH=share \ |
db7eca4c | 96 | -DCMAKE_INSTALL_INCLUDEDIR:PATH=include |
86cdc95d JB |
97 | |
98 | %{__make} | |
99 | ||
63a0bbb0 | 100 | %if %{with tests} |
1b86d2d6 | 101 | %{__make} check |
63a0bbb0 BS |
102 | %endif |
103 | ||
86cdc95d JB |
104 | %install |
105 | rm -rf $RPM_BUILD_ROOT | |
106 | ||
107 | %{__make} -C build install \ | |
108 | DESTDIR=$RPM_BUILD_ROOT | |
109 | ||
63a0bbb0 BS |
110 | %if %{with gdb} |
111 | install -D debug/gdb/printers.py $RPM_BUILD_ROOT%{_datadir}/gdb/python/%{name}/printers.py | |
112 | touch $RPM_BUILD_ROOT%{_datadir}/gdb/python/%{name}/__init__.py | |
113 | %py_comp $RPM_BUILD_ROOT%{_datadir}/gdb/python/%{name} | |
114 | %py_ocomp $RPM_BUILD_ROOT%{_datadir}/gdb/python/%{name} | |
115 | %py_postclean %{_datadir}/gdb/python/%{name} | |
116 | %endif | |
117 | ||
86cdc95d JB |
118 | %clean |
119 | rm -rf $RPM_BUILD_ROOT | |
120 | ||
121 | %files | |
122 | %defattr(644,root,root,755) | |
4b09a03b | 123 | %doc COPYING.BSD COPYING.MINPACK COPYING.README README.md |
86cdc95d JB |
124 | %{_includedir}/eigen3 |
125 | %{_npkgconfigdir}/eigen3.pc | |
08937ea0 JB |
126 | %dir %{_datadir}/eigen3 |
127 | %{_datadir}/eigen3/cmake | |
63a0bbb0 BS |
128 | |
129 | %if %{with gdb} | |
130 | %files gdb | |
131 | %defattr(644,root,root,755) | |
132 | %{_datadir}/gdb/python/%{name} | |
133 | %endif |