[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
79/182: gnu: pkg-config: Memoize 'cross-pkg-config'.
From: |
guix-commits |
Subject: |
79/182: gnu: pkg-config: Memoize 'cross-pkg-config'. |
Date: |
Fri, 15 Nov 2019 00:01:42 -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
- 74/182: gnu: john-the-ripper-jumbo: Update to 1.9.0., (continued)
- 74/182: gnu: john-the-ripper-jumbo: Update to 1.9.0., guix-commits, 2019/11/15
- 81/182: news: Add entry for package transformation options in "guix graph"., guix-commits, 2019/11/15
- 86/182: gnu: libdvdnav: Don't use NAME in source URI., guix-commits, 2019/11/15
- 89/182: gnu: python-dbus: Update to 1.2.10., guix-commits, 2019/11/15
- 47/182: gnu: ghex: Update to 3.18.4., guix-commits, 2019/11/15
- 63/182: gnu: modem-manager: Update to 1.10.8., guix-commits, 2019/11/15
- 69/182: gnu: gnome-disk-utility: Don't create icon cache., guix-commits, 2019/11/15
- 70/182: gnu: devhelp: Don't create icon cache., guix-commits, 2019/11/15
- 73/182: gnu: epiphany: Don't build icon cache., guix-commits, 2019/11/15
- 84/182: doc: Add clarification on the '--source' build option., guix-commits, 2019/11/15
- 79/182: gnu: pkg-config: Memoize 'cross-pkg-config'.,
guix-commits <=
- 87/182: gnu: libdvdnav: Update to 6.0.1., guix-commits, 2019/11/15
- 88/182: gnu: libdvdread: Update to 6.0.2., guix-commits, 2019/11/15
- 85/182: gnu: lollypop: Update to 1.2.7., guix-commits, 2019/11/15
- 82/182: gnu: Add nginx Accept Language module., guix-commits, 2019/11/15
- 90/182: gnu: hplip: Actually wrap binaries., guix-commits, 2019/11/15
- 94/182: gnu: gnumeric: Update to 1.12.46., guix-commits, 2019/11/15
- 95/182: gnu: goffice: Update to 0.10.46., guix-commits, 2019/11/15
- 97/182: gnu: r-abcrf: Update to 1.8.1., guix-commits, 2019/11/15
- 103/182: gnu: fcitx: Update to 4.2.9.7., guix-commits, 2019/11/15
- 106/182: news: Add 'de' translation., guix-commits, 2019/11/15