diff options
| author | Efraim Flashner <efraim@flashner.co.il> | 2020-03-09 17:30:31 +0200 |
|---|---|---|
| committer | Efraim Flashner <efraim@flashner.co.il> | 2020-03-12 15:34:28 +0200 |
| commit | d56d3ae704a74e592368a7afc69e1d109ea967f4 (patch) | |
| tree | 66b58c06d399437811a45612dc6cf0dea792c76d /gnu | |
| parent | b0aa58d8f1d63db2d4444db378e6dd4ee4b9313b (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.scm | 43 |
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) |
