[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/02: build-system/haskell: Generate Setup.hs if needed.
From: |
guix-commits |
Subject: |
02/02: build-system/haskell: Generate Setup.hs if needed. |
Date: |
Thu, 13 Jun 2019 23:03:27 -0400 (EDT) |
samplet pushed a commit to branch staging
in repository guix.
commit ed8d3f33a5236a1b9fde80bf4ad04e0ecc22a47a
Author: Robert Vollmert <address@hidden>
Date: Mon May 27 21:56:18 2019 +0200
build-system/haskell: Generate Setup.hs if needed.
The default Setup.hs is boilerplate that is frequently left out of
source packages. Several packages already add a phase to generate it,
so moving this phase to the build system is just factoring out an
existing pattern.
See <https://github.com/phadej/time-compat/issues/4>.
* guix/build/haskell-build-system.scm (generate-setuphs): New procedure.
(%standard-phases): Add it after 'unpack'.
* gnu/packages/haskell.scm (ghc-foundation, ghc-inline-c,
ghc-inline-c-cpp, ghc-rio): Remove 'arguments'.
Signed-off-by: Timothy Sample <address@hidden>
---
gnu/packages/haskell.scm | 42 -------------------------------------
guix/build/haskell-build-system.scm | 12 +++++++++++
2 files changed, 12 insertions(+), 42 deletions(-)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 97b4fd9..cfbd3bf 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -9703,16 +9703,6 @@ packages.")
(base32
"1q43y8wfj0wf9gdq2kzphwjwq6m5pvryy1lqgk954aq5z3ks1lsf"))))
(build-system haskell-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'add-setup-script
- (lambda _
- ;; The usual "Setup.hs" script is missing from the source.
- (with-output-to-file "Setup.hs"
- (lambda ()
- (format #t "import Distribution.Simple~%")
- (format #t "main = defaultMain~%"))))))))
(inputs `(("ghc-basement" ,ghc-basement)))
(home-page "https://github.com/haskell-foundation/foundation")
(synopsis "Alternative prelude with batteries and no dependencies")
@@ -10590,16 +10580,6 @@ widths to the Char type.")
(base32
"064h8a4hp53a479d3ak0vmqbx8hi0cpg7zn4wp23rjy26dka8p7g"))))
(build-system haskell-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'add-setup-script
- (lambda _
- ;; The usual "Setup.hs" script is missing from the source.
- (with-output-to-file "Setup.hs"
- (lambda ()
- (format #t "import Distribution.Simple~%")
- (format #t "main = defaultMain~%"))))))))
(inputs
`(("ghc-exceptions" ,ghc-exceptions)
("ghc-hashable" ,ghc-hashable)
@@ -11122,17 +11102,6 @@ DOS/Windows paths and markup languages (such as XML).")
(base32
"0vbfrsqsi7mdziqsnj68bsqlwbqxxhvrmy9rv6w8z18d1m8w3n6h"))))
(build-system haskell-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'create-Setup.hs
- (lambda _
- (with-output-to-file "Setup.hs"
- (lambda _
- (display "\
-import Distribution.Simple
-main = defaultMain")))
- #t)))))
(inputs
`(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
("ghc-cryptohash" ,ghc-cryptohash)
@@ -11266,17 +11235,6 @@ handling wrong.")
(base32
"1rk7fmpkmxw9hhwr8df29kadnf0ybnwj64ggdbnsdrpfyhnkisci"))))
(build-system haskell-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'create-Setup.hs
- (lambda _
- (with-output-to-file "Setup.hs"
- (lambda _
- (display "\
-import Distribution.Simple
-main = defaultMain")))
- #t)))))
(inputs
`(("ghc-inline-c" ,ghc-inline-c)
("ghc-safe-exceptions" ,ghc-safe-exceptions)))
diff --git a/guix/build/haskell-build-system.scm
b/guix/build/haskell-build-system.scm
index 513c080..91f6213 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -275,9 +275,21 @@ given Haskell package."
(_ (error "Could not find a Cabal file to patch."))))
#t)
+(define* (generate-setuphs #:rest empty)
+ "Generate a default Setup.hs if needed."
+ (when (not (or (file-exists? "Setup.hs")
+ (file-exists? "Setup.lhs")))
+ (format #t "generating missing Setup.hs~%")
+ (with-output-to-file "Setup.hs"
+ (lambda ()
+ (format #t "import Distribution.Simple~%")
+ (format #t "main = defaultMain~%"))))
+ #t)
+
(define %standard-phases
(modify-phases gnu:%standard-phases
(add-after 'unpack 'patch-cabal-file patch-cabal-file)
+ (add-after 'unpack 'generate-setuphs generate-setuphs)
(delete 'bootstrap)
(add-before 'configure 'setup-compiler setup-compiler)
(add-before 'install 'haddock haddock)