Gentoo Archives: gentoo-commits

From: Andrew Ammerlaan <andrewammerlaan@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/sci:master commit in: sci-libs/pytorch/files/, sci-libs/pytorch/
Date: Wed, 22 Dec 2021 14:33:40
Message-Id: 1640176937.0ffada949e994e6f869325019b173129ab42edf2.andrewammerlaan@gentoo
1 commit: 0ffada949e994e6f869325019b173129ab42edf2
2 Author: Miezhiko <Miezhiko <AT> gmail <DOT> com>
3 AuthorDate: Thu Nov 11 06:25:13 2021 +0000
4 Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
5 CommitDate: Wed Dec 22 12:42:17 2021 +0000
6 URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=0ffada94
7
8 sci-libs/pytorch: add PyTorch 1.10
9
10 Signed-off-by: Miezhiko <Miezhiko <AT> gmail.com>
11 Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>
12
13 sci-libs/pytorch/files/pytorch-1.10.0-nonull.patch | 12 +
14 sci-libs/pytorch/pytorch-1.10.0.ebuild | 330 +++++++++++++++++++++
15 2 files changed, 342 insertions(+)
16
17 diff --git a/sci-libs/pytorch/files/pytorch-1.10.0-nonull.patch b/sci-libs/pytorch/files/pytorch-1.10.0-nonull.patch
18 new file mode 100644
19 index 000000000..adc258556
20 --- /dev/null
21 +++ b/sci-libs/pytorch/files/pytorch-1.10.0-nonull.patch
22 @@ -0,0 +1,12 @@
23 +--- a/torch/csrc/jit/frontend/ir_emitter.cpp 2021-10-15 05:35:23.000000000 +0400
24 ++++ b/torch/csrc/jit/frontend/ir_emitter.cpp 2021-10-15 05:35:23.000000000 +0400
25 +@@ -1678,7 +1678,7 @@
26 + << "Union type annotation `" << type_hint->repr_str()
27 + << "` can hold " << vector_repr.str() << ", but none of "
28 + << "those list types can hold the types of the given dict"
29 +- << " elements, which were unified to " << candidate->repr_str();
30 ++ << " elements, which were unified";
31 + } else {
32 + refined_type_hint = candidate;
33 + }
34 +
35
36 diff --git a/sci-libs/pytorch/pytorch-1.10.0.ebuild b/sci-libs/pytorch/pytorch-1.10.0.ebuild
37 new file mode 100644
38 index 000000000..d3d347325
39 --- /dev/null
40 +++ b/sci-libs/pytorch/pytorch-1.10.0.ebuild
41 @@ -0,0 +1,330 @@
42 +# Copyright 1999-2021 Gentoo Authors
43 +# Distributed under the terms of the GNU General Public License v2
44 +
45 +EAPI=7
46 +
47 +PYTHON_COMPAT=( python3_{7..10} )
48 +
49 +inherit cmake cuda distutils-r1 prefix
50 +
51 +DESCRIPTION="Tensors and Dynamic neural networks in Python with strong GPU acceleration"
52 +HOMEPAGE="https://pytorch.org/"
53 +SRC_URI="https://github.com/pytorch/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
54 +https://github.com/google/benchmark/archive/e991355c02b93fe17713efe04cbc2e278e00fdbd.tar.gz -> benchmark-e991355c02b93fe17713efe04cbc2e278e00fdbd.tar.gz
55 +https://github.com/pytorch/cpuinfo/archive/63b25457.tar.gz -> cpuinfo-63b25457.tar.gz
56 +https://github.com/NVlabs/cub/archive/d106ddb991a56c3df1b6d51b2409e36ba8181ce4.tar.gz -> cub-d106ddb991a56c3df1b6d51b2409e36ba8181ce4.tar.gz
57 +https://github.com/pytorch/fbgemm/archive/7588d9d804826b428fc0e4fd418e9cc3f7a72e52.tar.gz -> fbgemm-7588d9d804826b428fc0e4fd418e9cc3f7a72e52.tar.gz
58 +https://github.com/asmjit/asmjit/archive/d0d14ac774977d0060a351f66e35cb57ba0bf59c.tar.gz -> asmjit-d0d14ac774977d0060a351f66e35cb57ba0bf59c.tar.gz
59 +https://github.com/pytorch/cpuinfo/archive/5916273f79a21551890fd3d56fc5375a78d1598d.tar.gz -> cpuinfo-5916273f79a21551890fd3d56fc5375a78d1598d.tar.gz
60 +https://github.com/google/googletest/archive/0fc5466d.tar.gz -> googletest-0fc5466d.tar.gz
61 +https://github.com/fmtlib/fmt/archive/cd4af11efc9c622896a3e4cb599fa28668ca3d05.tar.gz -> fmt-cd4af11efc9c622896a3e4cb599fa28668ca3d05.tar.gz
62 +https://github.com/houseroad/foxi/archive/c278588e34e535f0bb8f00df3880d26928038cad.tar.gz -> foxi-c278588e34e535f0bb8f00df3880d26928038cad.tar.gz
63 +https://github.com/Maratyszcza/FP16/archive/4dfe081cf6bcd15db339cf2680b9281b8451eeb3.tar.gz -> FP16-4dfe081cf6bcd15db339cf2680b9281b8451eeb3.tar.gz
64 +https://github.com/Maratyszcza/FXdiv/archive/b408327ac2a15ec3e43352421954f5b1967701d1.tar.gz -> FXdiv-b408327ac2a15ec3e43352421954f5b1967701d1.tar.gz
65 +https://github.com/google/gemmlowp/archive/3fb5c176.tar.gz -> gemmlowp-3fb5c176.tar.gz
66 +https://github.com/facebookincubator/gloo/archive/c22a5cfba94edf8ea4f53a174d38aa0c629d070f.tar.gz -> gloo-c22a5cfba94edf8ea4f53a174d38aa0c629d070f.tar.gz
67 +https://github.com/google/googletest/archive/e2239ee6043f73722e7aa812a459f54a28552929.tar.gz -> googletest-e2239ee6043f73722e7aa812a459f54a28552929.tar.gz
68 +https://github.com/intel/ideep/archive/9ca27bbfd88fa1469cbf0467bd6f14cd1738fa40.tar.gz -> ideep-9ca27bbfd88fa1469cbf0467bd6f14cd1738fa40.tar.gz
69 +https://github.com/intel/mkl-dnn/archive/5ef631a0.tar.gz -> mkl-dnn-5ef631a0.tar.gz
70 +cuda? ( https://github.com/NVIDIA/nccl/archive/033d7995.tar.gz -> nccl-033d7995.tar.gz )
71 +https://github.com/Maratyszcza/NNPACK/archive/c07e3a0400713d546e0dea2d5466dd22ea389c73.tar.gz -> NNPACK-c07e3a0400713d546e0dea2d5466dd22ea389c73.tar.gz
72 +https://github.com/onnx/onnx/archive/a82c6a70.tar.gz -> onnx-a82c6a70.tar.gz
73 +https://github.com/onnx/onnx-tensorrt/archive/c153211418a7c57ce071d9ce2a41f8d1c85a878f.tar.gz -> onnx-tensorrt-c153211418a7c57ce071d9ce2a41f8d1c85a878f.tar.gz
74 +https://github.com/onnx/onnx/archive/29e7aa7048809784465d06e897f043a4600642b2.tar.gz -> onnx-29e7aa7048809784465d06e897f043a4600642b2.tar.gz
75 +https://github.com/google/benchmark/archive/e776aa02.tar.gz -> benchmark-e776aa02.tar.gz
76 +https://github.com/google/benchmark/archive/5b7683f4.tar.gz -> benchmark-5b7683f4.tar.gz
77 +https://github.com/google/googletest/archive/5ec7f0c4.tar.gz -> googletest-5ec7f0c4.tar.gz
78 +https://github.com/Maratyszcza/psimd/archive/072586a71b55b7f8c584153d223e95687148a90.tar.gz -> psimd-072586a71b55b7f8c584153d223e95687148a90.tar.gz
79 +https://github.com/Maratyszcza/pthreadpool/archive/a134dd5d4cee80cce15db81a72e7f929d71dd413.tar.gz -> pthreadpool-a134dd5d4cee80cce15db81a72e7f929d71dd413.tar.gz
80 +https://github.com/Maratyszcza/PeachPy/archive/07d8fde8ac45d7705129475c0f94ed8925b93473.tar.gz -> PeachPy-07d8fde8ac45d7705129475c0f94ed8925b93473.tar.gz
81 +https://github.com/pytorch/QNNPACK/archive/7d2a4e9931a82adc3814275b6219a03e24e36b4c.tar.gz -> QNNPACK-7d2a4e9931a82adc3814275b6219a03e24e36b4c.tar.gz
82 +https://github.com/shibatch/sleef/archive/e0a003ee838b75d11763aa9c3ef17bf71a725bff.tar.gz -> sleef-e0a003ee838b75d11763aa9c3ef17bf71a725bff.tar.gz
83 +https://github.com/pytorch/tensorpipe/archive/d2aa3485e8229c98891dfd604b514a39d45a5c99.tar.gz -> tensorpipe-d2aa3485e8229c98891dfd604b514a39d45a5c99.tar.gz
84 +https://github.com/google/googletest/archive/2fe3bd99.tar.gz -> googletest-2fe3bd99.tar.gz
85 +https://github.com/google/libnop/archive/aa95422e.tar.gz -> libnop-aa95422e.tar.gz
86 +https://github.com/libuv/libuv/archive/48e04275332f5753427d21a52f17ec6206451f2c.tar.gz -> libuv-48e04275332f5753427d21a52f17ec6206451f2c.tar.gz
87 +https://github.com/google/XNNPACK/archive/79cd5f9e18ad0925ac9a050b00ea5a36230072db.tar.gz -> XNNPACK-79cd5f9e18ad0925ac9a050b00ea5a36230072db.tar.gz
88 +https://github.com/pytorch/kineto/archive/879a203d9bf554e95541679ddad6e0326f272dc1.tar.gz -> kineto-879a203d9bf554e95541679ddad6e0326f272dc1.tar.gz
89 +https://github.com/driazati/breakpad/archive/7d188f679d4ae0a5bd06408a3047d69ef8eef848.tar.gz -> breakpad-7d188f679d4ae0a5bd06408a3047d69ef8eef848.tar.gz
90 +https://github.com/mikey/linux-syscall-support/archive/e1e7b0ad8ee99a875b272c8e33e308472e897660.tar.gz -> lss-e1e7b0ad8ee99a875b272c8e33e308472e897660.tar.gz
91 +https://github.com/pybind/pybind11/archive/8de7772cc72daca8e947b79b83fea46214931604.tar.gz -> pybind11-8de7772cc72daca8e947b79b83fea46214931604.tar.gz
92 +"
93 +
94 +# git clone git@××××××.com:pytorch/pytorch.git && cd pytorch
95 +# git submodules update --init --recursive
96 +# ${FILESDIR}/get_third_paries
97 +# cat SRC_URI src_prepare
98 +
99 +LICENSE="BSD"
100 +SLOT="0"
101 +KEYWORDS="~x86 ~amd64"
102 +
103 +IUSE="asan blas cuda +fbgemm ffmpeg gflags glog +gloo leveldb lmdb mkldnn mpi namedtensor +nnpack numa +observers opencl opencv +openmp +python +qnnpack redis rocm static test tools zeromq"
104 +RESTRICT="!test? ( test )"
105 +REQUIRED_USE="
106 + ?? ( cuda rocm )
107 +"
108 +
109 +RDEPEND="
110 + dev-python/pyyaml[${PYTHON_USEDEP}]
111 + blas? ( virtual/blas )
112 + cuda? ( dev-libs/cudnn
113 + dev-cpp/eigen[cuda] )
114 + rocm? ( >=dev-util/hip-4.0.0-r1
115 + >=dev-libs/rccl-4
116 + >=sci-libs/rocThrust-4
117 + >=sci-libs/hipCUB-4
118 + >=sci-libs/rocPRIM-4
119 + >=sci-libs/miopen-4
120 + >=sci-libs/rocBLAS-4
121 + >=sci-libs/rocRAND-4
122 + >=sci-libs/hipSPARSE-4
123 + >=sci-libs/rocFFT-4
124 + >=dev-util/roctracer-4 )
125 + ffmpeg? ( media-video/ffmpeg )
126 + gflags? ( dev-cpp/gflags )
127 + glog? ( dev-cpp/glog[gflags] )
128 + leveldb? ( dev-libs/leveldb )
129 + lmdb? ( dev-db/lmdb )
130 + mpi? ( virtual/mpi )
131 + opencl? ( dev-libs/clhpp virtual/opencl )
132 + opencv? ( media-libs/opencv )
133 + python? ( ${PYTHON_DEPS}
134 + dev-python/pybind11[${PYTHON_USEDEP}]
135 + dev-python/numpy[${PYTHON_USEDEP}]
136 + dev-python/protobuf-python:0/30
137 + )
138 + redis? ( dev-db/redis )
139 + zeromq? ( net-libs/zeromq )
140 + dev-cpp/eigen
141 + dev-libs/protobuf:0/30
142 + dev-libs/libuv
143 +"
144 +
145 +#ATen code generation
146 +BDEPEND="dev-python/pyyaml"
147 +
148 +DEPEND="${RDEPEND}
149 + test? ( dev-python/pytest[${PYTHON_USEDEP}] )
150 + dev-cpp/tbb
151 + app-arch/zstd
152 + !dev-python/pybind11
153 + dev-python/typing-extensions[${PYTHON_USEDEP}]
154 + sys-fabric/libibverbs
155 + sys-process/numactl
156 +"
157 +
158 +PATCHES=(
159 + "${FILESDIR}"/${PN}-1.6.0-skip-tests.patch
160 + "${FILESDIR}"/${PN}-1.6.0-global-dlopen.patch
161 + "${FILESDIR}"/0002-Don-t-build-libtorch-again-for-PyTorch-1.7.1.patch
162 + "${FILESDIR}"/${PN}-1.7.1-no-rpath.patch
163 + "${FILESDIR}"/${PN}-1.7.1-torch_shm_manager.patch
164 + "${FILESDIR}"/${PN}-1.10.0-nonull.patch
165 +)
166 +
167 +src_prepare() {
168 + cmake_src_prepare
169 + eprefixify torch/__init__.py
170 +
171 + rmdir third_party/benchmark || die
172 + ln -sv "${WORKDIR}"/benchmark-e991355c02b93fe17713efe04cbc2e278e00fdbd third_party/benchmark || die
173 + rmdir third_party/cpuinfo || die
174 + ln -sv "${WORKDIR}"/cpuinfo-5916273f79a21551890fd3d56fc5375a78d1598d third_party/cpuinfo || die
175 + rmdir third_party/cub || die
176 + ln -sv "${WORKDIR}"/cub-d106ddb991a56c3df1b6d51b2409e36ba8181ce4 third_party/cub || die
177 + rmdir third_party/fbgemm || die
178 + ln -sv "${WORKDIR}"/FBGEMM-7588d9d804826b428fc0e4fd418e9cc3f7a72e52 third_party/fbgemm || die
179 + rmdir third_party/fbgemm/third_party/asmjit || die
180 + ln -sv "${WORKDIR}"/asmjit-d0d14ac774977d0060a351f66e35cb57ba0bf59c third_party/fbgemm/third_party/asmjit || die
181 + rmdir third_party/fbgemm/third_party/cpuinfo || die
182 + ln -sv "${WORKDIR}"/cpuinfo-d5e37adf1406cf899d7d9ec1d317c47506ccb970 third_party/fbgemm/third_party/cpuinfo || die
183 + rmdir third_party/fbgemm/third_party/googletest || die
184 + ln -sv "${WORKDIR}"/googletest-0fc5466dbb9e623029b1ada539717d10bd45e99e third_party/fbgemm/third_party/googletest || die
185 + rmdir third_party/fmt || die
186 + ln -sv "${WORKDIR}"/fmt-cd4af11efc9c622896a3e4cb599fa28668ca3d05 third_party/fmt || die
187 + rmdir third_party/foxi || die
188 + ln -sv "${WORKDIR}"/foxi-c278588e34e535f0bb8f00df3880d26928038cad third_party/foxi || die
189 + rmdir third_party/FP16 || die
190 + ln -sv "${WORKDIR}"/FP16-4dfe081cf6bcd15db339cf2680b9281b8451eeb3 third_party/FP16 || die
191 + rmdir third_party/FXdiv
192 + ln -sv "${WORKDIR}"/FXdiv-b408327ac2a15ec3e43352421954f5b1967701d1 third_party/FXdiv || die
193 + rmdir third_party/gemmlowp/gemmlowp || die
194 + ln -sv "${WORKDIR}"/gemmlowp-3fb5c176c17c765a3492cd2f0321b0dab712f350 third_party/gemmlowp/gemmlowp || die
195 + rmdir third_party/gloo || die
196 + ln -sv "${WORKDIR}"/gloo-c22a5cfba94edf8ea4f53a174d38aa0c629d070f third_party/gloo || die
197 + rmdir third_party/googletest || die
198 + ln -sv "${WORKDIR}"/googletest-e2239ee6043f73722e7aa812a459f54a28552929 third_party/googletest || die
199 + rmdir third_party/ideep || die
200 + ln -sv "${WORKDIR}"/ideep-9ca27bbfd88fa1469cbf0467bd6f14cd1738fa40 third_party/ideep || die
201 + rmdir third_party/ideep/mkl-dnn || die
202 + ln -sv "${WORKDIR}"/mkl-dnn-5ef631a030a6f73131c77892041042805a06064f third_party/ideep/mkl-dnn || die
203 + rmdir third_party/nccl/nccl || die
204 + ln -sv "${WORKDIR}"/nccl-033d799524fb97629af5ac2f609de367472b2696 third_party/nccl/nccl || die
205 + rmdir third_party/NNPACK || die
206 + ln -sv "${WORKDIR}"/NNPACK-c07e3a0400713d546e0dea2d5466dd22ea389c73 third_party/NNPACK || die
207 + rmdir third_party/onnx || die
208 + ln -sv "${WORKDIR}"/onnx-29e7aa7048809784465d06e897f043a4600642b2 third_party/onnx || die
209 + rmdir third_party/onnx-tensorrt || die
210 + ln -sv "${WORKDIR}"/onnx-tensorrt-c153211418a7c57ce071d9ce2a41f8d1c85a878f third_party/onnx-tensorrt || die
211 + rmdir third_party/onnx-tensorrt/third_party/onnx || die
212 + ln -sv "${WORKDIR}"/onnx-765f5ee823a67a866f4bd28a9860e81f3c811ce8 third_party/onnx-tensorrt/third_party/onnx || die
213 + rmdir third_party/onnx/third_party/benchmark || die
214 + ln -sv "${WORKDIR}"/benchmark-e776aa0275e293707b6a0901e0e8d8a8a3679508 third_party/onnx/third_party/benchmark || die
215 + rmdir third_party/psimd || die
216 + ln -sv "${WORKDIR}"/psimd-072586a71b55b7f8c584153d223e95687148a900 third_party/psimd || die
217 + rmdir third_party/pthreadpool || die
218 + ln -sv "${WORKDIR}"/pthreadpool-a134dd5d4cee80cce15db81a72e7f929d71dd413 third_party/pthreadpool || die
219 + rmdir third_party/python-peachpy || die
220 + ln -sv "${WORKDIR}"/PeachPy-07d8fde8ac45d7705129475c0f94ed8925b93473 third_party/python-peachpy || die
221 + rmdir third_party/QNNPACK || die
222 + ln -sv "${WORKDIR}"/QNNPACK-7d2a4e9931a82adc3814275b6219a03e24e36b4c third_party/QNNPACK || die
223 + rmdir third_party/sleef || die
224 + ln -sv "${WORKDIR}"/sleef-e0a003ee838b75d11763aa9c3ef17bf71a725bff third_party/sleef || die
225 + rmdir third_party/tensorpipe || die
226 + ln -sv "${WORKDIR}"/tensorpipe-d2aa3485e8229c98891dfd604b514a39d45a5c99 third_party/tensorpipe || die
227 + rmdir third_party/tensorpipe/third_party/googletest || die
228 + ln -sv "${WORKDIR}"/googletest-2fe3bd994b3189899d93f1d5a881e725e046fdc2 third_party/tensorpipe/third_party/googletest || die
229 + rmdir third_party/tensorpipe/third_party/libnop || die
230 + ln -sv "${WORKDIR}"/libnop-aa95422ea8c409e3f078d2ee7708a5f59a8b9fa2 third_party/tensorpipe/third_party/libnop || die
231 + rmdir third_party/tensorpipe/third_party/libuv || die
232 + ln -sv "${WORKDIR}"/libuv-48e04275332f5753427d21a52f17ec6206451f2c third_party/tensorpipe/third_party/libuv || die
233 + rmdir third_party/XNNPACK || die
234 + ln -sv "${WORKDIR}"/XNNPACK-79cd5f9e18ad0925ac9a050b00ea5a36230072db third_party/XNNPACK || die
235 + rmdir third_party/kineto || die
236 + ln -sv "${WORKDIR}"/kineto-879a203d9bf554e95541679ddad6e0326f272dc1 third_party/kineto || die
237 + rmdir third_party/breakpad || die
238 + ln -sv "${WORKDIR}"/breakpad-7d188f679d4ae0a5bd06408a3047d69ef8eef848 third_party/breakpad || die
239 + rmdir third_party/breakpad/src/third_party/lss || die
240 + ln -sv "${WORKDIR}"/linux-syscall-support-e1e7b0ad8ee99a875b272c8e33e308472e897660 third_party/breakpad/src/third_party/lss || die
241 + rmdir third_party/pybind11 || die
242 + ln -sv "${WORKDIR}"/pybind11-8de7772cc72daca8e947b79b83fea46214931604 third_party/pybind11 || die
243 +
244 + if use cuda; then
245 + cd third_party/nccl/nccl || die
246 + eapply "${FILESDIR}"/${PN}-1.6.0-nccl-nvccflags.patch
247 + cuda_src_prepare
248 + export CUDAHOSTCXX=$(cuda_gccdir)/g++
249 + fi
250 +
251 + if use rocm; then
252 + #Allow escaping sandbox
253 + addread /dev/kfd
254 + addread /dev/dri
255 + addwrite /dev/kfd
256 + addwrite /dev/dri
257 +
258 + ebegin "HIPifying cuda sources"
259 + tools/amd_build/build_amd.py
260 + eend $?
261 +
262 + export PYTORCH_ROCM_ARCH=$(rocminfo | egrep -o "gfx[0-9]+" | uniq | awk -vORS=';' "{print $1}" | sed 's/;$/\n/') || die
263 + sed -e "/set(roctracer_INCLUDE_DIRS/s,\${ROCTRACER_PATH}/include,${EPREFIX}/usr/include/roctracer," \
264 + -i cmake/public/LoadHIP.cmake || die
265 + fi
266 +}
267 +
268 +src_configure() {
269 + local mycmakeargs=(
270 + -DWERROR=OFF
271 + -DTORCH_BUILD_VERSION=${PV}
272 + -DTORCH_INSTALL_LIB_DIR=$(get_libdir)
273 + -DBUILD_BINARY=$(usex tools ON OFF)
274 + -DBUILD_CUSTOM_PROTOBUF=OFF
275 + -DBUILD_PYTHON=$(usex python ON OFF)
276 + -DBUILD_SHARED_LIBS=$(usex static OFF ON)
277 + -DBUILD_TEST=$(usex test ON OFF)
278 + -DUSE_ASAN=$(usex asan ON OFF)
279 + -DUSE_CUDA=$(usex cuda ON OFF)
280 + -DUSE_NCCL=$(usex cuda ON OFF)
281 + -DUSE_SYSTEM_NCCL=OFF
282 + -DUSE_ROCM=$(usex rocm ON OFF)
283 + -DUSE_FBGEMM=$(usex fbgemm ON OFF)
284 + -DUSE_FFMPEG=$(usex ffmpeg ON OFF)
285 + -DUSE_GFLAGS=$(usex gflags ON OFF)
286 + -DUSE_GLOG=$(usex glog ON OFF)
287 + -DUSE_LEVELDB=$(usex leveldb ON OFF)
288 + -DUSE_LITE_PROTO=OFF
289 + -DUSE_LMDB=$(usex lmdb ON OFF)
290 + -DUSE_MKLDNN=$(usex mkldnn ON OFF)
291 + -DUSE_MKLDNN_CBLAS=OFF
292 + -DUSE_NNPACK=$(usex nnpack ON OFF)
293 + -DUSE_NUMPY=$(usex python ON OFF)
294 + -DUSE_NUMA=$(usex numa ON OFF)
295 + -DUSE_OBSERVERS=$(usex observers ON OFF)
296 + -DUSE_OPENCL=$(usex opencl ON OFF)
297 + -DUSE_OPENCV=$(usex opencv ON OFF)
298 + -DUSE_OPENMP=$(usex openmp ON OFF)
299 + -DUSE_TBB=OFF
300 + -DUSE_PROF=OFF
301 + -DUSE_QNNPACK=$(usex qnnpack ON OFF)
302 + -DUSE_REDIS=$(usex redis ON OFF)
303 + -DUSE_ROCKSDB=OFF
304 + -DUSE_ZMQ=$(usex zeromq ON OFF)
305 + -DUSE_MPI=$(usex mpi ON OFF)
306 + -DUSE_GLOO=$(usex gloo ON OFF)
307 + -DUSE_SYSTEM_EIGEN_INSTALL=ON
308 + -DBUILD_NAMEDTENSOR=$(usex namedtensor ON OFF)
309 + -DBLAS=$(usex blas Generic Eigen)
310 + -DTP_BUILD_LIBUV=OFF
311 + -Wno-dev
312 + )
313 +
314 + cmake_src_configure
315 +
316 + if use python; then
317 + CMAKE_BUILD_DIR="${BUILD_DIR}" distutils-r1_src_configure
318 + fi
319 +
320 + # do not rerun cmake and the build process in src_install
321 + sed '/RERUN/,+1d' -i "${BUILD_DIR}"/build.ninja || die
322 +}
323 +
324 +src_compile() {
325 + cmake_src_compile
326 +
327 + if use python; then
328 + USE_SYSTEM_LIBS=ON CMAKE_BUILD_DIR=${BUILD_DIR} distutils-r1_src_compile
329 + fi
330 +}
331 +
332 +src_install() {
333 + cmake_src_install
334 +
335 + local LIB=$(get_libdir)
336 + if [[ ${LIB} != lib ]]; then
337 + mv -fv "${ED}"/usr/lib/*.so "${ED}"/usr/${LIB}/ || die
338 + fi
339 +
340 + rm -rfv "${ED}/torch"
341 + rm -rfv "${ED}/var"
342 + rm -rfv "${ED}/usr/lib"
343 +
344 + rm -fv "${ED}/usr/include/*.{h,hpp}"
345 + rm -rfv "${ED}/usr/include/asmjit"
346 + rm -rfv "${ED}/usr/include/c10d"
347 + rm -rfv "${ED}/usr/include/fbgemm"
348 + rm -rfv "${ED}/usr/include/fp16"
349 + rm -rfv "${ED}/usr/include/gloo"
350 + rm -rfv "${ED}/usr/include/include"
351 + rm -rfv "${ED}/usr/include/var"
352 +
353 + cp -rv "${WORKDIR}/${P}/third_party/pybind11/include/pybind11" "${ED}/usr/include/"
354 +
355 + rm -fv "${ED}/usr/${LIB}/libtbb.so"
356 + rm -rfv "${ED}/usr/${LIB}/cmake"
357 +
358 + if use python; then
359 + scanelf -r --fix "${BUILD_DIR}/caffe2/python"
360 + USE_SYSTEM_LIBS=ON CMAKE_BUILD_DIR=${BUILD_DIR} distutils-r1_src_install
361 +
362 + python_foreach_impl python_optimize
363 + fi
364 +
365 + find "${ED}/usr/${LIB}" -name "*.a" -exec rm -fv {} \;
366 +
367 + use test && rm -rfv "${ED}/usr/test" "${ED}"/usr/bin/test_{api,jit}
368 +
369 + # Remove the empty directories by CMake Python:
370 + find "${ED}" -type d -empty -delete || die
371 +}