diff options
author | Maxime Devos <maximedevos@telenet.be> | 2021-08-25 15:25:18 +0200 |
---|---|---|
committer | Mathieu Othacehe <othacehe@gnu.org> | 2021-09-20 11:15:09 +0000 |
commit | d169b5a84d53f23f2cf9805481a16b5456ff0e2b (patch) | |
tree | b1cc753614f5266916509febf6d00ee38a9fe652 /gnu | |
parent | 175705b971c8dc5fad47f84d2d9e780316fc5503 (diff) |
gnu: Add pkg-config-for-build.
* gnu/packages/pkg-config.scm (pkg-config-for-build): New variable.
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/pkg-config.scm | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm index 9c632532be..2b4173a7db 100644 --- a/gnu/packages/pkg-config.scm +++ b/gnu/packages/pkg-config.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,8 +22,10 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) + #:use-module (gnu packages bash) #:use-module (guix memoization) #:export (pkg-config)) @@ -130,3 +133,38 @@ build, or a GNU triplet." ;; environment or not. (define-syntax pkg-config (identifier-syntax (pkg-config-for-target (%current-target-system)))) + +;; This hack allows for using both "pkg-config" and "TARGET-pkg-config" +;; at the same time. Simply using '%pkg-config' and 'pkg-config' won't +;; work because they both use the "PKG_CONFIG_PATH" environment variable. +(define-public pkg-config-for-build + (package + (inherit (hidden-package %pkg-config)) + (name "pkg-config-for-build") + (version "0") + (source #f) + (build-system trivial-build-system) + (inputs + `(("bash-minimal" ,bash-minimal) + ("pkg-config" ,%pkg-config))) + (arguments + `(#:modules ((guix build utils)) + #:builder + ,#~(begin + (use-modules (guix build utils)) + (define where (string-append #$output "/bin/pkg-config")) + (mkdir-p (dirname where)) + (call-with-output-file where + (lambda (port) + (format port "#!~a +export PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH_FOR_BUILD\" +exec ~a \"$@\"" + (search-input-file %build-inputs "bin/bash") + (search-input-file %build-inputs "bin/pkg-config")))) + (chmod where #o500)))) + (native-search-paths + (map (lambda (original) + (search-path-specification + (inherit original) + (variable "PKG_CONFIG_FOR_BUILD"))) + (package-native-search-paths %pkg-config))))) |