summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2020-03-09 17:30:31 +0200
committerEfraim Flashner <efraim@flashner.co.il>2020-03-12 15:34:28 +0200
commitd56d3ae704a74e592368a7afc69e1d109ea967f4 (patch)
tree66b58c06d399437811a45612dc6cf0dea792c76d /gnu
parentb0aa58d8f1d63db2d4444db378e6dd4ee4b9313b (diff)
gnu: grpc: Build shared libraries.
* gnu/packages/machine-learning.scm (grpc)[outputs]: Add static. [arguments]: Copy configure-flags from cmake-build-system. Add custom phases 'configure-shared, 'install-shared-libraries and 'move-static-libs to build shared libs and move static libs to their own output. (tensorflow)[native-inputs]: Add grpc:static.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/machine-learning.scm43
1 files changed, 40 insertions, 3 deletions
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 50c41dc113a..52e639723bc 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -1,6 +1,6 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> 2;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
3;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> 3;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il>
4;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> 4;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
5;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> 5;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
6;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> 6;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -1285,6 +1285,7 @@ Python.")
1285 (package 1285 (package
1286 (name "grpc") 1286 (name "grpc")
1287 (version "1.16.1") 1287 (version "1.16.1")
1288 (outputs '("out" "static"))
1288 (source (origin 1289 (source (origin
1289 (method git-fetch) 1290 (method git-fetch)
1290 (uri (git-reference 1291 (uri (git-reference
@@ -1301,7 +1302,42 @@ Python.")
1301 (list "-DgRPC_ZLIB_PROVIDER=package" 1302 (list "-DgRPC_ZLIB_PROVIDER=package"
1302 "-DgRPC_CARES_PROVIDER=package" 1303 "-DgRPC_CARES_PROVIDER=package"
1303 "-DgRPC_SSL_PROVIDER=package" 1304 "-DgRPC_SSL_PROVIDER=package"
1304 "-DgRPC_PROTOBUF_PROVIDER=package"))) 1305 "-DgRPC_PROTOBUF_PROVIDER=package"
1306 (string-append "-DCMAKE_INSTALL_PREFIX="
1307 (assoc-ref %outputs "out"))
1308 "-DCMAKE_INSTALL_LIBDIR=lib"
1309 (string-append "-DCMAKE_INSTALL_RPATH="
1310 (assoc-ref %outputs "out") "/lib")
1311 "-DCMAKE_VERBOSE_MAKEFILE=ON")
1312 #:phases
1313 (modify-phases %standard-phases
1314 (add-before 'configure 'configure-shared
1315 (lambda* (#:key (configure-flags '()) #:allow-other-keys)
1316 (mkdir "../build-shared")
1317 (with-directory-excursion "../build-shared"
1318 (apply invoke
1319 "cmake" "../source"
1320 "-DBUILD_SHARED_LIBS=ON"
1321 configure-flags)
1322 (apply invoke "make"
1323 `("-j" ,(number->string (parallel-job-count)))))))
1324 (add-after 'install 'install-shared-libraries
1325 (lambda _
1326 (with-directory-excursion "../build-shared"
1327 (invoke "make" "install"))))
1328 (add-before 'strip 'move-static-libs
1329 (lambda* (#:key outputs #:allow-other-keys)
1330 (let ((out (assoc-ref outputs "out"))
1331 (static (assoc-ref outputs "static")))
1332 (mkdir-p (string-append static "/lib"))
1333 (with-directory-excursion
1334 (string-append out "/lib")
1335 (for-each
1336 (lambda (file)
1337 (rename-file file
1338 (string-append static "/lib/" file)))
1339 (find-files "." "\\.a$"))))
1340 #t)))))
1305 (inputs 1341 (inputs
1306 `(("c-ares" ,c-ares/cmake) 1342 `(("c-ares" ,c-ares/cmake)
1307 ("openssl" ,openssl) 1343 ("openssl" ,openssl)
@@ -1731,6 +1767,7 @@ INSTALL_RPATH " (assoc-ref outputs "out") "/lib)\n")))
1731 (sha256 1767 (sha256
1732 (base32 1768 (base32
1733 "161g9841rjfsy5pn52fcis0s9hdr7rxvb06pad38j5rppfihvign"))))) 1769 "161g9841rjfsy5pn52fcis0s9hdr7rxvb06pad38j5rppfihvign")))))
1770 ("grpc" ,grpc "static")
1734 ("googletest" ,googletest) 1771 ("googletest" ,googletest)
1735 ("swig" ,swig) 1772 ("swig" ,swig)
1736 ("unzip" ,unzip))) 1773 ("unzip" ,unzip)))
@@ -1752,7 +1789,7 @@ INSTALL_RPATH " (assoc-ref outputs "out") "/lib)\n")))
1752 ("libjpeg" ,libjpeg) 1789 ("libjpeg" ,libjpeg)
1753 ("libpng" ,libpng) 1790 ("libpng" ,libpng)
1754 ("giflib" ,giflib) 1791 ("giflib" ,giflib)
1755 ("grpc" ,grpc) 1792 ("grpc:bin" ,grpc)
1756 ("jsoncpp" ,jsoncpp-for-tensorflow) 1793 ("jsoncpp" ,jsoncpp-for-tensorflow)
1757 ("snappy" ,snappy) 1794 ("snappy" ,snappy)
1758 ("sqlite" ,sqlite) 1795 ("sqlite" ,sqlite)