[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#28690] provide a lib output for boost
From: |
Roel Janssen |
Subject: |
[bug#28690] provide a lib output for boost |
Date: |
Wed, 11 Oct 2017 10:39:40 +0200 |
User-agent: |
mu4e 0.9.18; emacs 25.1.1 |
Dave Love writes:
> I mentioned elsewhere noticing the large size of boost in closures.
> I've now realized what the problem was with making a lib output, and
> done one, as below. However, presumably it should have a dependency of
> out on lib for compatibility, and I don't know the right way to do that.
>
> The lib package is 17MiB, and the headers are 108MiB.
>
>>From 1bb845d1d45ee7e8b9447bab902f3de41f0acfac Mon Sep 17 00:00:00 2001
> From: Dave Love <address@hidden>
> Date: Tue, 3 Oct 2017 16:18:59 +0100
> Subject: [PATCH] gnu: boost: Make a "lib" output.
>
> This save about half the contribution to the Closure of things linked against
> it,
>
> * gnu/packages/boost.scm(outputs): Add lib.
> (arguments)[mv-lib]: Add move the lib output into place after install.
> ---
> gnu/packages/boost.scm | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
> index 4c7308e9d..c1e622fcd 100644
> --- a/gnu/packages/boost.scm
> +++ b/gnu/packages/boost.scm
> @@ -53,6 +53,7 @@
> `(("perl" ,perl)
> ("python" ,python-2)
> ("tcsh" ,tcsh)))
> + (outputs '("out" "lib"))
> (arguments
> `(#:tests? #f
> #:make-flags
> @@ -60,7 +61,7 @@
>
> ;; Set the RUNPATH to $libdir so that the libs find each other.
> (string-append "linkflags=-Wl,-rpath="
> - (assoc-ref %outputs "out") "/lib")
> + (assoc-ref %outputs "lib") "/lib")
>
> ;; Boost's 'context' library is not yet supported on mips64, so
> ;; we disable it. The 'coroutine' library depends on 'context',
> @@ -99,7 +100,13 @@
> (replace
> 'install
> (lambda* (#:key outputs make-flags #:allow-other-keys)
> - (zero? (apply system* "./b2" "install" make-flags)))))))
> + (zero? (apply system* "./b2" "install" make-flags))))
> + (add-after 'install 'mv-lib
> + (lambda _
> + (mkdir-p (assoc-ref %outputs "lib"))
> + (rename-file (string-append %output "/lib")
> + (string-append (assoc-ref %outputs "lib")
> + "/lib")))))))
>
> (home-page "http://boost.org")
> (synopsis "Peer-reviewed portable C++ source libraries")
Boost consists of various modules or components. Some of these are
"header-only". How does this patch handle that?
If I were to install the "lib" output, could I then compile a C++
program that uses a header-only part of Boost?
Kind regards,
Roel Janssen
- [bug#28690] provide a lib output for boost, Dave Love, 2017/10/03
- [bug#28690] provide a lib output for boost,
Roel Janssen <=
- [bug#28690] provide a lib output for boost, Dave Love, 2017/10/19
- [bug#28690] provide a lib output for boost, Roel Janssen, 2017/10/19
- [bug#28690] provide a lib output for boost, Ludovic Courtès, 2017/10/20
- [bug#28690] provide a lib output for boost, Thomas Danckaert, 2017/10/20
- [bug#28690] provide a lib output for boost, Ludovic Courtès, 2017/10/20
- [bug#28690] provide a lib output for boost, Dave Love, 2017/10/22
- [bug#28690] provide a lib output for boost, Ludovic Courtès, 2017/10/22
- [bug#28690] provide a lib output for boost, Thomas Danckaert, 2017/10/24
- [bug#28690] provide a lib output for boost, Ludovic Courtès, 2017/10/24
- [bug#28690] provide a lib output for boost, Dave Love, 2017/10/20