[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
79/184: gnu: pkg-config: Memoize 'cross-pkg-config'.
From: |
guix-commits |
Subject: |
79/184: gnu: pkg-config: Memoize 'cross-pkg-config'. |
Date: |
Wed, 27 Nov 2019 14:37:04 -0500 (EST) |
kkebreau pushed a commit to branch wip-gnome-updates
in repository guix.
commit 64c249bc4629ca357ac908ff1deb656caf71d072
Author: Ludovic Courtès <address@hidden>
Date: Thu Nov 7 10:30:41 2019 +0100
gnu: pkg-config: Memoize 'cross-pkg-config'.
When running:
guix build --target=arm-linux-gnueabihf gdb -nd
this reduces the number of hits in the 'add-data-to-store' cache from
205 (25%) to 163 (21%).
* gnu/packages/pkg-config.scm (cross-pkg-config): Turn into an 'mlambda'.
---
gnu/packages/pkg-config.scm | 67 +++++++++++++++++++++++----------------------
1 file changed, 35 insertions(+), 32 deletions(-)
diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm
index 6fc19a9..c3bc302 100644
--- a/gnu/packages/pkg-config.scm
+++ b/gnu/packages/pkg-config.scm
@@ -22,6 +22,7 @@
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
+ #:use-module (guix memoization)
#:export (pkg-config))
;; This is the "primitive" pkg-config package. People should use `pkg-config'
@@ -65,44 +66,46 @@ on where to find glib (or other libraries). It is
language-agnostic, so
it can be used for defining the location of documentation tools, for
instance.")))
-(define (cross-pkg-config target)
- "Return a pkg-config for TARGET, essentially just a wrapper called
+(define cross-pkg-config
+ (mlambda (target)
+ "Return a pkg-config for TARGET, essentially just a wrapper called
`TARGET-pkg-config', as `configure' scripts like it."
- ;; See
<http://www.flameeyes.eu/autotools-mythbuster/pkgconfig/cross-compiling.html>
- ;; for details.
- (package (inherit %pkg-config)
- (name (string-append (package-name %pkg-config) "-" target))
- (build-system trivial-build-system)
- (arguments
- `(#:modules ((guix build utils))
- #:builder (begin
- (use-modules (guix build utils))
+ ;; See
<http://www.flameeyes.eu/autotools-mythbuster/pkgconfig/cross-compiling.html>
+ ;; for details.
+ (package
+ (inherit %pkg-config)
+ (name (string-append (package-name %pkg-config) "-" target))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder (begin
+ (use-modules (guix build utils))
- (let* ((in (assoc-ref %build-inputs "pkg-config"))
- (out (assoc-ref %outputs "out"))
- (bin (string-append out "/bin"))
- (prog (string-append ,target "-pkg-config"))
- (native (string-append in "/bin/pkg-config")))
+ (let* ((in (assoc-ref %build-inputs "pkg-config"))
+ (out (assoc-ref %outputs "out"))
+ (bin (string-append out "/bin"))
+ (prog (string-append ,target "-pkg-config"))
+ (native (string-append in "/bin/pkg-config")))
- (mkdir-p bin)
+ (mkdir-p bin)
- ;; Create a `TARGET-pkg-config' -> `pkg-config' symlink.
- ;; This satisfies the pkg.m4 macros, which use
- ;; AC_PROG_TOOL to determine the `pkg-config' program
- ;; name.
- (symlink native (string-append bin "/" prog))
+ ;; Create a `TARGET-pkg-config' -> `pkg-config' symlink.
+ ;; This satisfies the pkg.m4 macros, which use
+ ;; AC_PROG_TOOL to determine the `pkg-config' program
+ ;; name.
+ (symlink native (string-append bin "/" prog))
- ;; Also make 'pkg.m4' available, some packages might
- ;; expect it.
- (mkdir-p (string-append out "/share"))
- (symlink (string-append in "/share/aclocal")
- (string-append out "/share/aclocal"))
- #t))))
- (native-inputs `(("pkg-config" ,%pkg-config)))
+ ;; Also make 'pkg.m4' available, some packages might
+ ;; expect it.
+ (mkdir-p (string-append out "/share"))
+ (symlink (string-append in "/share/aclocal")
+ (string-append out "/share/aclocal"))
+ #t))))
+ (native-inputs `(("pkg-config" ,%pkg-config)))
- ;; Ignore native inputs, and set `PKG_CONFIG_PATH' for target inputs.
- (native-search-paths '())
- (search-paths (package-native-search-paths %pkg-config))))
+ ;; Ignore native inputs, and set `PKG_CONFIG_PATH' for target inputs.
+ (native-search-paths '())
+ (search-paths (package-native-search-paths %pkg-config)))))
(define (pkg-config-for-target target)
"Return a pkg-config package for TARGET, which may be either #f for a native
- 29/184: gnu: gnome-clocks: Update to 3.32.0., (continued)
- 29/184: gnu: gnome-clocks: Update to 3.32.0., guix-commits, 2019/11/27
- 42/184: gnu: cheese: Update to 3.32.1., guix-commits, 2019/11/27
- 58/184: gnu: grilo: Update to 0.3.10., guix-commits, 2019/11/27
- 60/184: gnu: nautilus: Update to 3.32.3., guix-commits, 2019/11/27
- 63/184: gnu: modem-manager: Update to 1.10.8., guix-commits, 2019/11/27
- 66/184: gnu: linux-libre@4.14: Update to 4.14.152., guix-commits, 2019/11/27
- 69/184: gnu: gnome-disk-utility: Don't create icon cache., guix-commits, 2019/11/27
- 73/184: gnu: epiphany: Don't build icon cache., guix-commits, 2019/11/27
- 78/184: gnu: commencement: Ensure 'gnu-make-final' refers to the native 'pkg-config'., guix-commits, 2019/11/27
- 85/184: gnu: lollypop: Update to 1.2.7., guix-commits, 2019/11/27
- 79/184: gnu: pkg-config: Memoize 'cross-pkg-config'.,
guix-commits <=
- 86/184: gnu: libdvdnav: Don't use NAME in source URI., guix-commits, 2019/11/27
- 90/184: gnu: hplip: Actually wrap binaries., guix-commits, 2019/11/27
- 94/184: gnu: gnumeric: Update to 1.12.46., guix-commits, 2019/11/27
- 95/184: gnu: goffice: Update to 0.10.46., guix-commits, 2019/11/27
- 100/184: gnu: r-plotly: Update to 4.9.1., guix-commits, 2019/11/27
- 98/184: gnu: r-polspline: Update to 1.1.17., guix-commits, 2019/11/27
- 111/184: gnu: Add delft-icon-theme., guix-commits, 2019/11/27
- 110/184: gnu: packages: Add rofi-pass., guix-commits, 2019/11/27
- 31/184: gnu: gnome-shell-extensions: Update to 3.32.1., guix-commits, 2019/11/27
- 28/184: gnu: gnome-screenshot: Update to 3.32.0., guix-commits, 2019/11/27