build-system/meson: Add #:allowed-references and #:disallowed-references.

* guix/build-system/meson.scm (meson-build): Add support for
  #:allowed-references and #:disallowed-references.
master
Marius Bakke 2019-03-17 16:32:24 +01:00
parent c1f4e6491c
commit ad4910eec0
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
1 changed files with 27 additions and 3 deletions

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -109,9 +109,25 @@
(system (%current-system))
(imported-modules %meson-build-system-modules)
(modules '((guix build meson-build-system)
(guix build utils))))
(guix build utils)))
allowed-references
disallowed-references)
"Build SOURCE using MESON, and with INPUTS, assuming that SOURCE
has a 'meson.build' file."
;; TODO: Copied from build-system/gnu, factorize this!
(define canonicalize-reference
(match-lambda
((? package? p)
(derivation->output-path (package-derivation store p system
#:graft? #f)))
(((? package? p) output)
(derivation->output-path (package-derivation store p system
#:graft? #f)
output))
((? string? output)
output)))
(define builder
`(let ((build-phases (if ,glib-or-gtk?
,phases
@ -159,7 +175,15 @@ has a 'meson.build' file."
#:inputs inputs
#:modules imported-modules
#:outputs outputs
#:guile-for-build guile-for-build))
#:guile-for-build guile-for-build
#:allowed-references
(and allowed-references
(map canonicalize-reference
allowed-references))
#:disallowed-references
(and disallowed-references
(map canonicalize-reference
disallowed-references))))
(define meson-build-system
(build-system