mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 15:36:20 -05:00
build-system/haskell: Add default output "static".
* guix/build-system/haskell.scm (lower): Add OUTPUTS keyword and add the "static" output in the common case. (haskell-build): Set the default value for the OUTPUTS keyword to include the "static" output. * guix/build/haskell-build-system.scm (install): Move static libraries to the "static" output if it exists.
This commit is contained in:
parent
9e5496e0ae
commit
718dc7d4a5
2 changed files with 20 additions and 6 deletions
|
@ -67,7 +67,7 @@ (define* (lower name
|
||||||
#:rest arguments)
|
#:rest arguments)
|
||||||
"Return a bag for NAME."
|
"Return a bag for NAME."
|
||||||
(define private-keywords
|
(define private-keywords
|
||||||
'(#:target #:haskell #:cabal-revision #:inputs #:native-inputs))
|
'(#:target #:haskell #:cabal-revision #:inputs #:native-inputs #:outputs))
|
||||||
|
|
||||||
(define (cabal-revision->origin cabal-revision)
|
(define (cabal-revision->origin cabal-revision)
|
||||||
(match cabal-revision
|
(match cabal-revision
|
||||||
|
@ -95,7 +95,10 @@ (define (cabal-revision->origin cabal-revision)
|
||||||
,@(standard-packages)))
|
,@(standard-packages)))
|
||||||
(build-inputs `(("haskell" ,haskell)
|
(build-inputs `(("haskell" ,haskell)
|
||||||
,@native-inputs))
|
,@native-inputs))
|
||||||
(outputs outputs)
|
;; XXX: this is a hack to get around issue #41569.
|
||||||
|
(outputs (match outputs
|
||||||
|
(("out") (cons "static" outputs))
|
||||||
|
(_ outputs)))
|
||||||
(build haskell-build)
|
(build haskell-build)
|
||||||
(arguments (strip-keyword-arguments private-keywords arguments)))))
|
(arguments (strip-keyword-arguments private-keywords arguments)))))
|
||||||
|
|
||||||
|
@ -109,7 +112,7 @@ (define* (haskell-build store name inputs
|
||||||
(configure-flags ''())
|
(configure-flags ''())
|
||||||
(phases '(@ (guix build haskell-build-system)
|
(phases '(@ (guix build haskell-build-system)
|
||||||
%standard-phases))
|
%standard-phases))
|
||||||
(outputs '("out"))
|
(outputs '("out" "static"))
|
||||||
(search-paths '())
|
(search-paths '())
|
||||||
(system (%current-system))
|
(system (%current-system))
|
||||||
(guile #f)
|
(guile #f)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
||||||
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
||||||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2018, 2020 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
|
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
|
@ -131,9 +131,20 @@ (define* (build #:key parallel-build? #:allow-other-keys)
|
||||||
`(,(string-append "--ghc-option=-j" (number->string (parallel-job-count))))
|
`(,(string-append "--ghc-option=-j" (number->string (parallel-job-count))))
|
||||||
'())))
|
'())))
|
||||||
|
|
||||||
(define* (install #:rest empty)
|
(define* (install #:key outputs #:allow-other-keys)
|
||||||
"Install a given Haskell package."
|
"Install a given Haskell package."
|
||||||
(run-setuphs "copy" '()))
|
(run-setuphs "copy" '())
|
||||||
|
(when (assoc-ref outputs "static")
|
||||||
|
(let ((static (assoc-ref outputs "static"))
|
||||||
|
(lib (or (assoc-ref outputs "lib")
|
||||||
|
(assoc-ref outputs "out"))))
|
||||||
|
(for-each (lambda (static-lib)
|
||||||
|
(let* ((subdir (string-drop static-lib (string-length lib)))
|
||||||
|
(new (string-append static subdir)))
|
||||||
|
(mkdir-p (dirname new))
|
||||||
|
(rename-file static-lib new)))
|
||||||
|
(find-files lib "\\.a$"))))
|
||||||
|
#t)
|
||||||
|
|
||||||
(define (grep rx port)
|
(define (grep rx port)
|
||||||
"Given a regular-expression RX including a group, read from PORT until the
|
"Given a regular-expression RX including a group, read from PORT until the
|
||||||
|
|
Loading…
Reference in a new issue