]>
Commit | Line | Data |
---|---|---|
15e3f957 JB |
1 | # |
2 | # Conditional build: | |
3 | %bcond_without apidocs # API documentation | |
4 | %bcond_without java # Java wrappers | |
5 | %bcond_without mono # Mono/.NET wrappers | |
6 | %bcond_with sse2 # use SSE2 instructions | |
7 | %bcond_with sse3 # use SSE3 instructions | |
8 | %bcond_with ssse3 # use SSE3 and SSSE3 instructions | |
becca253 | 9 | |
15e3f957 JB |
10 | %if %{with ssse} |
11 | %define with_sse3 1 | |
12 | %endif | |
13 | Summary: OpenNI framework for Natural Interaction devices | |
14 | Summary(pl.UTF-8): Szkielet OpenNI do urządzeń służących interakcji z naturą | |
15 | Name: OpenNI | |
16 | Version: 1.5.2.23 | |
becca253 | 17 | Release: 2 |
15e3f957 JB |
18 | License: LGPL v3+ |
19 | Group: Libraries | |
20 | Source0: https://github.com/OpenNI/OpenNI/tarball/Stable-%{version}#/%{name}-%{version}.tar.gz | |
21 | # Source0-md5: 12389c56bf3685a741f6bcfa068585ff | |
22 | Patch0: %{name}-system-libs.patch | |
23 | Patch1: %{name}-link.patch | |
24 | Patch2: %{name}-nosse.patch | |
25 | URL: http://openni.org/ | |
26 | BuildRequires: OpenGL-devel | |
5317508f JB |
27 | # for examples |
28 | BuildRequires: OpenGL-glut-devel >= 3 | |
15e3f957 | 29 | %{?with_apidocs:BuildRequires: doxygen} |
15e3f957 JB |
30 | %{?with_apidocs:BuildRequires: graphviz} |
31 | %{?with_java:BuildRequires: jdk >= 1.6.0} | |
32 | BuildRequires: libjpeg-devel | |
33 | BuildRequires: libstdc++-devel >= 6:4.0 | |
34 | BuildRequires: libusb-devel >= 1.0.8 | |
35 | %{?with_mono:BuildRequires: mono-csharp} | |
36 | BuildRequires: python >= 1:2.6 | |
4c5a3ffd | 37 | BuildRequires: rpmbuild(macros) >= 1.566 |
15e3f957 | 38 | BuildRequires: sed >= 4.0 |
7c20a007 | 39 | # NOTE: other platforms need adding a dozen of defines in Include/Linux-*/*.h |
15e3f957 JB |
40 | ExclusiveArch: %{ix86} %{x8664} arm |
41 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
42 | ||
43 | %ifarch %{ix86} | |
44 | %define openni_platform x86 | |
45 | %endif | |
46 | %ifarch %{x8664} | |
47 | %define openni_platform x64 | |
48 | %endif | |
49 | %ifarch arm | |
50 | %define openni_platform Arm | |
51 | %endif | |
52 | ||
53 | %description | |
54 | OpenNI framework provides an application programming interface (API) | |
55 | for writing applications utilizing natural interaction. This API | |
56 | covers communication with both low level devices (e.g. vision and | |
57 | audio sensors), as well as high-level middleware solutions (e.g. for | |
58 | visual tracking using computer vision). | |
59 | ||
60 | The OpenNI Framework provides the interface for physical devices and | |
61 | for middleware components. The API enables modules to be registered in | |
62 | the OpenNI framework and used to produce sensory data. Selecting the | |
63 | hardware or middleware module is easy and flexible. | |
64 | ||
65 | %description -l pl.UTF-8 | |
66 | Szkielet OpenNI zapewnia interfejs programistyczny (API) dla aplikacji | |
67 | wykorzystujących interakcję z naturą. API to pokrywa komunikację | |
68 | zarówno z urządzeniami niskiego poziomu (takimi jak czujniki obrazu i | |
69 | dźwięku), jak i rozwiązaniami wysokiego poziomu warstwy pośredniej | |
70 | (np. do wizualnego śledzenia przy użyciu obrazu komputerowego). | |
71 | ||
72 | Szkielet OpenNI zapewnia interfejs dla fizycznych urządzeń oraz | |
73 | komponentów warstwy pośredniej. API pozwala na rejestrowanie modułów w | |
74 | szkielecie OpenNI i wykorzystywanie do tworzenia danych sensorycznych. | |
75 | Wybór sprzętu i modułu pośredniego jest prosty i elastyczny. | |
76 | ||
77 | %package devel | |
78 | Summary: Header files for OpenNI library | |
79 | Summary(pl.UTF-8): Pliki nagłówkowe biblioteki OpenNI | |
80 | Group: Development/Libraries | |
81 | Requires: %{name} = %{version}-%{release} | |
82 | ||
83 | %description devel | |
84 | Header files for OpenNI library. | |
85 | ||
86 | %description devel -l pl.UTF-8 | |
87 | Pliki nagłówkowe biblioteki OpenNI. | |
88 | ||
89 | %package doc | |
90 | Summary: OpenNI user guide | |
91 | Summary(pl.UTF-8): Podręcznik użytkownika OpenNI | |
92 | Group: Documentation | |
58eba6fb ER |
93 | %if "%{_rpmversion}" >= "5" |
94 | BuildArch: noarch | |
95 | %endif | |
15e3f957 JB |
96 | |
97 | %description doc | |
98 | OpenNI user guide in PDF format. | |
99 | ||
100 | %description doc -l pl.UTF-8 | |
101 | Podręcznik użytkownika OpenNI w formacie PDF. | |
102 | ||
103 | %package apidocs | |
104 | Summary: OpenNI API documentation | |
105 | Summary(pl.UTF-8): Dokumentacja API biblioteki OpenNI | |
106 | Group: Documentation | |
becca253 ER |
107 | %if "%{_rpmversion}" >= "5" |
108 | BuildArch: noarch | |
109 | %endif | |
15e3f957 JB |
110 | |
111 | %description apidocs | |
112 | API and internal documentation for OpenNI library. | |
113 | ||
114 | %description apidocs -l pl.UTF-8 | |
115 | Dokumentacja API biblioteki OpenNI. | |
116 | ||
117 | %package -n java-OpenNI | |
118 | Summary: Java wrapper for OpenNI | |
119 | Summary(pl.UTF-8): Interfejs Javy do OpenNI | |
120 | Group: Libraries/Java | |
121 | Requires: %{name} = %{version}-%{release} | |
122 | Requires: jpackage-utils | |
123 | Requires: jre >= 1.6.0 | |
124 | ||
125 | %description -n java-OpenNI | |
126 | Java wrapper for OpenNI. | |
127 | ||
128 | %description -n java-OpenNI -l pl.UTF-8 | |
129 | Interfejs Javy do OpenNI. | |
130 | ||
131 | %package -n dotnet-OpenNI | |
132 | Summary: .NET wrapper for OpenNI | |
133 | Summary(pl.UTF-8): Interfejs .NET do OpenNI | |
134 | Group: Libraries | |
135 | Requires: %{name} = %{version}-%{release} | |
136 | Requires: mono | |
137 | ||
138 | %description -n dotnet-OpenNI | |
139 | .NET wrapper for OpenNI. | |
140 | ||
141 | %description -n dotnet-OpenNI -l pl.UTF-8 | |
142 | Interfejs .NET do OpenNI. | |
143 | ||
144 | %prep | |
becca253 | 145 | %setup -q -n %{name}-OpenNI-1516074 |
4c5a3ffd | 146 | %undos Platform/Linux/Build/Samples/NiUserTracker/Makefile |
15e3f957 JB |
147 | %patch0 -p1 |
148 | %patch1 -p1 | |
149 | %patch2 -p1 | |
150 | ||
151 | sed -i -e 's///' Wrappers/OpenNI.net/*.cs Samples/*.net/*.cs | |
152 | ||
153 | %build | |
154 | %{__make} -C Platform/Linux/Build clean | |
155 | export CFLAGS="%{rpmcflags}" | |
156 | %{__make} -C Platform/Linux/Build \ | |
157 | CFG=PLD \ | |
158 | CXX="%{__cxx}" \ | |
159 | HOSTPLATFORM=%{openni_platform} \ | |
160 | SSE_GENERATION=%{?with_sse3:3}%{!?with_sse3:%{?with_sse2:2}} \ | |
161 | %{?with_ssse3:SSSE3_ENABLED=1} \ | |
162 | %{!?with_mono:MONO_INSTALLED=0} \ | |
163 | %{!?with_java:ALL_JAVA_PROJS= JAVA_SAMPLES=} | |
164 | ||
165 | %if %{with apidocs} | |
166 | cd Source/DoxyGen | |
167 | doxygen Doxyfile | |
168 | %endif | |
169 | ||
170 | %install | |
171 | rm -rf $RPM_BUILD_ROOT | |
172 | install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_includedir}/ni,/var/lib/ni} | |
173 | ||
174 | BDIR=Platform/Linux/Bin/%{openni_platform}-PLD | |
becca253 ER |
175 | install -p ${BDIR}/ni{Reg,License} $RPM_BUILD_ROOT%{_bindir} |
176 | install -p ${BDIR}/libOpenNI.so $RPM_BUILD_ROOT%{_libdir} | |
177 | install -p ${BDIR}/libnim{Codecs,MockNodes,Recorder}.so $RPM_BUILD_ROOT%{_libdir} | |
15e3f957 JB |
178 | cp -p Include/*.h $RPM_BUILD_ROOT%{_includedir}/ni |
179 | %ifarch %{ix86} %{x8664} | |
180 | cp -pr Include/Linux-x86 $RPM_BUILD_ROOT%{_includedir}/ni | |
181 | %endif | |
182 | %ifarch arm | |
183 | cp -pr Include/Linux-Arm $RPM_BUILD_ROOT%{_includedir}/ni | |
184 | %endif | |
185 | ||
186 | %if %{with java} | |
187 | install -d $RPM_BUILD_ROOT%{_javadir} | |
becca253 ER |
188 | install -p ${BDIR}/libOpenNI.jni.so $RPM_BUILD_ROOT%{_libdir} |
189 | cp -p ${BDIR}/org.OpenNI.jar $RPM_BUILD_ROOT%{_javadir} | |
15e3f957 JB |
190 | %endif |
191 | ||
192 | %if %{with mono} | |
193 | gacutil -i ${BDIR}/OpenNI.net.dll -package 2.0 -root $RPM_BUILD_ROOT%{_prefix}/lib | |
194 | %endif | |
195 | ||
196 | %clean | |
197 | rm -rf $RPM_BUILD_ROOT | |
198 | ||
199 | %post | |
200 | /sbin/ldconfig | |
becca253 | 201 | for mod in libnimMockNodes.so libnimCodecs.so libnimRecorder.so; do |
15e3f957 JB |
202 | %{_bindir}/niReg -r %{_libdir}/$mod |
203 | done | |
204 | ||
205 | %preun | |
206 | if [ "$1" = "0" ]; then | |
becca253 | 207 | for mod in libnimMockNodes.so libnimCodecs.so libnimRecorder.so; do |
15e3f957 JB |
208 | %{_bindir}/niReg -u %{_libdir}/$mod |
209 | done | |
210 | fi | |
211 | ||
212 | %postun -p /sbin/ldconfig | |
213 | ||
214 | %files | |
215 | %defattr(644,root,root,755) | |
216 | %doc CHANGES README | |
217 | %attr(755,root,root) %{_bindir}/niLicense | |
218 | %attr(755,root,root) %{_bindir}/niReg | |
219 | %attr(755,root,root) %{_libdir}/libOpenNI.so | |
220 | %attr(755,root,root) %{_libdir}/libnimCodecs.so | |
221 | %attr(755,root,root) %{_libdir}/libnimMockNodes.so | |
222 | %attr(755,root,root) %{_libdir}/libnimRecorder.so | |
c714cde4 | 223 | %dir /var/lib/ni |
15e3f957 JB |
224 | |
225 | %files devel | |
226 | %defattr(644,root,root,755) | |
227 | %{_includedir}/ni | |
228 | ||
229 | %files doc | |
230 | %defattr(644,root,root,755) | |
231 | %doc Documentation/OpenNI_UserGuide.pdf | |
232 | ||
233 | %if %{with apidocs} | |
234 | %files apidocs | |
235 | %defattr(644,root,root,755) | |
236 | %doc Source/DoxyGen/html/*.{bmp,css,html,js,png} | |
237 | %endif | |
238 | ||
239 | %if %{with java} | |
240 | %files -n java-OpenNI | |
241 | %defattr(644,root,root,755) | |
242 | %attr(755,root,root) %{_libdir}/libOpenNI.jni.so | |
243 | %{_javadir}/org.OpenNI.jar | |
244 | %endif | |
245 | ||
246 | %if %{with mono} | |
247 | %files -n dotnet-OpenNI | |
248 | %defattr(644,root,root,755) | |
249 | %{_prefix}/lib/mono/2.0/OpenNI.net.dll | |
250 | %{_prefix}/lib/mono/gac/OpenNI.net | |
251 | %endif |