[Dist/Tizen] Add a runtime dependency on the MvNCS2 firmware package
[platform/upstream/dldt.git] / packaging / openvino.spec
1 %bcond_with tizen
2 %if %{with tizen}
3 %global debug_package %{nil}
4 %global __debug_install_post %{nil}
5
6 %if "%{?_lib}" == "lib64"
7 %define _cmake_lib_suffix_flag %{?_cmake_lib_suffix64}
8 %else
9 %define _cmake_lib_suffix_flag %{nil}
10 %endif
11
12 %ifarch x86_64
13 %define _cmake_sse_support_flag -DENABLE_SSE42=1
14 %else
15 %define _cmake_sse_support_flag -DENABLE_SSE42=0
16 %endif
17
18 %define _extra_cmake_flags %{_cmake_lib_suffix_flag} %{_cmake_sse_support_flag} -DLINUX_OS_NAME="Tizen %{tizen_full_version}"
19
20 %ifarch x86_64 i686 armv7l aarch64
21
22 %ifarch x86_64
23 %define install_arch    intel64
24 %endif
25
26 %ifarch i686
27 %define install_arch    i686
28 %endif
29
30 %ifarch armv7l
31 %define install_arch    armv7l
32 %endif
33
34 %ifarch aarch64
35 %define install_arch    aarch64
36 %endif
37
38 %else
39 %define install_arch    %{_arch}
40 %endif
41
42 %endif
43
44 %define     external_ade_archive        ade-cbe2db61a659c2cc304c3837406f95c39dfa938e
45 %define     external_ngraph_archive     ngraph-0.22.0-rc.2
46
47 Name:           openvino
48 Summary:        OpenVINO™ Toolkit - Deep Learning Deployment Toolkit
49 Version:        2019R3
50 Release:        0
51 Group:          Development/Libraries
52 Packager:       Wook Song <wook16.song@samsung.com>
53 License:        Apache-2.0
54 Source0:        %{name}-%{version}.tar.gz
55 Source1:        %{name}.manifest
56 Source1001:     %{external_ade_archive}.tar.gz
57 Source1002:     %{external_ngraph_archive}.tar.gz
58 Source1003:     openvino.pc.in
59 Patch0:         0001-CMake-Do-not-call-get_linux_name-when-LINUX_OS_NAME-.patch
60 Patch1:         0002-CMake-Add-a-variable-to-resolve-dependency-on-TBB-us.patch
61 Patch2:         0003-VPU-CMake-Add-a-cmake-option-to-skip-downloading-MVN.patch
62 BuildRequires:  cmake
63 BuildRequires:  pkgconfig(libtbb)
64 BuildRequires:  pkgconfig(libusb-1.0)
65 BuildRequires:  pkg-config
66 Requires:       intel-mvnc-firmware
67
68 %description
69 OpenVINO™ toolkit, short for Open Visual Inference and Neural network Optimization toolkit,
70 provides developers with improved neural network performance on a variety of Intel® processors
71 and helps them further unlock cost-effective, real-time vision applications.
72 The toolkit enables deep learning inference and easy heterogeneous execution across multiple
73 Intel® platforms (CPU, Intel® Processor Graphics)—providing implementations across cloud
74 architectures to edge devices. This open source distribution provides flexibility and
75 availability to the developer community to innovate deep learning and AI solutions.
76
77 %package devel
78 Summary:        Development package for OpenVINO™ Toolkit
79 Requires:       %{name} = %{version}-%{release}
80 Recommends:     mvnc-2x8x-firmware
81
82 %description devel
83 Development package for Open Visual Inference and Neural network Optimization toolkit.
84 This contains corresponding header files and static archives.
85
86 %prep
87 %setup -q
88 %patch0 -p1
89 %patch1 -p1
90 %patch2 -p1
91 cp %{SOURCE1} .
92 cp %{SOURCE1001} ./inference-engine/thirdparty
93 cp %{SOURCE1002} ./inference-engine/thirdparty
94 cp %{SOURCE1003} .
95 pushd inference-engine
96 pushd thirdparty
97 tar zxf %{external_ade_archive}.tar.gz
98 mv %{external_ade_archive}/* ade/
99 tar zxf %{external_ngraph_archive}.tar.gz
100 mv %{external_ngraph_archive}/* ngraph/
101 rm -rf *.tar.gz %{external_ade_archive} %{external_ngraph_archive}
102 popd
103 rm -rf build && mkdir -p build
104 pushd build
105 CFLAGS="${CFLAGS:-%optflags}"; export CFLAGS=${CFLAGS/-Wall/};
106 CXXFLAGS="${CXXFLAGS:-%optflags}"; export CXXFLAGS=${CXXFLAGS/-Wall/};
107 FFLAGS="${FFLAGS:-%optflags}"; export FFLAGS=${FFLAGS/-Wall/};
108 cmake .. \
109         -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
110         -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir} -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \
111         -DLIB_INSTALL_DIR:PATH=%{_libdir} -DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \
112         -DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \
113         %{?_cmake_skip_rpath} -DUSE_TBB_SYSTEM_DEPS=ON -DUSE_MYRIAD_SYSTEM_DEPS=ON \
114         -DENABLE_VPU=ON -DENABLE_MYRIAD=ON -DENABLE_MYRIAD_MVNC_TESTS=OFF -DENABLE_MYRIAD_NO_BOOT=OFF \
115         -DBUILD_ADE_DOCUMENTATION=OFF -DBUILD_ADE_TUTORIAL=OFF \
116         -DBUILD_PKGCONFIG=OFF -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF -DBUILD_TESTS=OFF \
117         -DCLDNN__INCLUDE_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=Release -DCOVERAGE=OFF \
118         -DDEVELOPMENT_PLUGIN_MODE=OFF-DENABLE_ADE_TESTING=OFF \
119         -DENABLE_AFFINITY_GENERATOR=OFF -DENABLE_ALTERNATIVE_TEMP=OFF -DENABLE_CLDNN=OFF \
120         -DENABLE_CLDNN_BUILD=OFF -DENABLE_CLDNN_TESTS=OFF -DENABLE_CPPCHECK=OFF -DENABLE_CPPLINT=OFF \
121         -DENABLE_CPPLINT_REPORT=OFF -DENABLE_CPP_CCT=OFF -DENABLE_DEBUG_SYMBOLS=OFF \
122         -DENABLE_FUZZING=OFF -DENABLE_GAPI_TESTS=OFF -DENABLE_GNA=OFF -DENABLE_LTO=OFF \
123         -DENABLE_MKL_DNN=OFF \
124         -DENABLE_OBJECT_DETECTION_TESTS=ON -DENABLE_OPENCV=OFF -DENABLE_PLUGIN_RPATH=OFF \
125         -DENABLE_PROFILING_ITT=OFF -DENABLE_PROFILING_RAW=OFF -DENABLE_PYTHON=OFF -DENABLE_ROCKHOPER=OFF \
126         -DENABLE_SAMPLES=OFF -DENABLE_SAMPLES_CORE=OFF -DENABLE_SEGMENTATION_TESTS=OFF -DENABLE_TESTS=ON \
127         -DTREAT_WARNING_AS_ERROR=OFF %{_extra_cmake_flags}
128 popd
129 popd
130
131 %build
132 pushd inference-engine
133 pushd build
134 %{__make} %{?_smp_mflags}
135 popd
136 popd
137 sed -i 's|@VERSION@|%{version}|g' openvino.pc.in
138 sed -i 's|@PREFIX@|%{_prefix}|g' openvino.pc.in
139 sed -i 's|@LIB_INSTALL_DIR@|%{_libdir}|g' openvino.pc.in
140 sed -i 's|@INCLUDE_INSTALL_DIR@|%{_includedir}|g' openvino.pc.in
141
142 %install
143 mkdir -p %{buildroot}%{_libdir}
144 mkdir -p %{buildroot}%{_libdir}/pkgconfig
145 cp openvino.pc.in %{buildroot}%{_libdir}/pkgconfig/openvino.pc
146
147 pushd inference-engine/bin/%{install_arch}/Release
148 install -m 644 lib/*.so %{buildroot}%{_libdir}
149 install -m 644 lib/*.xml %{buildroot}%{_libdir}
150 rm -rf lib/libstb_image.a
151 rm -rf lib/libgflags_nothreads.a
152 rm -rf lib/libgtest_main.a
153 rm -rf lib/libgtest.a
154 rm -rf lib/libgmock_main.a
155 rm -rf lib/libgmock.a
156 install -m 644 lib/*.a %{buildroot}%{_libdir}
157 popd
158
159 mkdir -p %{buildroot}%{_includedir}
160 mkdir -p %{buildroot}%{_includedir}/builders
161 mkdir -p %{buildroot}%{_includedir}/cpp
162 mkdir -p %{buildroot}%{_includedir}/details
163 mkdir -p %{buildroot}%{_includedir}/details/os
164 mkdir -p %{buildroot}%{_includedir}/hetero
165 mkdir -p %{buildroot}%{_includedir}/multi-device
166 pushd inference-engine
167 install -m 644 include/*.h* %{buildroot}%{_includedir}
168 install -m 644 include/builders/*.h* %{buildroot}%{_includedir}/builders/
169 install -m 644 include/cpp/*.h* %{buildroot}%{_includedir}/cpp/
170 install -m 644 include/details/*.h* %{buildroot}%{_includedir}/details/
171 install -m 644 include/details/os/*.h* %{buildroot}%{_includedir}/details/os/
172 install -m 644 include/hetero/*.h* %{buildroot}%{_includedir}/hetero/
173 install -m 644 include/multi-device/*.h* %{buildroot}%{_includedir}/multi-device/
174 popd
175
176 # Block running tests until it is stabilized
177 #%check
178 #pushd inference-engine/bin/%{install_arch}/Release
179 #LD_LIBRARY_PATH=./lib ./InferenceEngineUnitTests
180 #popd
181
182 %post
183 %{_sbindir}/ldconfig
184
185 %postun
186 %{_sbindir}/ldconfig
187
188 %files
189 %manifest %{name}.manifest
190 %license LICENSE
191 %{_libdir}/*.so
192 %{_libdir}/*.xml
193
194 %files devel
195 %manifest %{name}.manifest
196 %license LICENSE
197 %{_libdir}/*.a
198 %{_libdir}/pkgconfig/openvino.pc
199 %{_includedir}/*