build-system/haskell: Support parallel builds.

* guix/build-system/haskell.scm (haskell-build): Add keyword PARALLEL-BUILD?
and pass it on to the builder.
* guix/build/haskell-build-system.scm (build): Accept keyword PARALLEL-BUILD?
and pass the number of parallel jobs to GHC.
This commit is contained in:
Ricardo Wurmus 2020-06-16 22:25:48 +02:00
parent 54c9b5bfd7
commit 67cb9fa235
No known key found for this signature in database
GPG key ID: 197A5888235FACAC
2 changed files with 7 additions and 2 deletions

View file

@ -105,6 +105,7 @@ (define* (haskell-build store name inputs
(haddock-flags ''()) (haddock-flags ''())
(tests? #t) (tests? #t)
(test-target "test") (test-target "test")
(parallel-build? #t)
(configure-flags ''()) (configure-flags ''())
(phases '(@ (guix build haskell-build-system) (phases '(@ (guix build haskell-build-system)
%standard-phases)) %standard-phases))
@ -138,6 +139,7 @@ (define builder
#:system ,system #:system ,system
#:test-target ,test-target #:test-target ,test-target
#:tests? ,tests? #:tests? ,tests?
#:parallel-build? ,parallel-build?
#:haddock? ,haddock? #:haddock? ,haddock?
#:phases ,phases #:phases ,phases
#:outputs %outputs #:outputs %outputs

View file

@ -121,9 +121,12 @@ (define* (configure #:key outputs inputs tests? (configure-flags '())
(setenv "GHC_PACKAGE_PATH" ghc-path) (setenv "GHC_PACKAGE_PATH" ghc-path)
#t)) #t))
(define* (build #:rest empty) (define* (build #:key parallel-build? #:allow-other-keys)
"Build a given Haskell package." "Build a given Haskell package."
(run-setuphs "build" '())) (run-setuphs "build"
(if parallel-build?
`(,(string-append "--ghc-option=-j" (number->string (parallel-job-count))))
'())))
(define* (install #:rest empty) (define* (install #:rest empty)
"Install a given Haskell package." "Install a given Haskell package."