build-system/haskell: install config for any package that creates it.

A Cabal package is allowed to declare an "empty" library, in an
otherwise executable-only package, for the purpose of allowing Cabal
to use it as a dependency for other packages.  See e.g. hspec-discover.

* guix/build/haskell-build-system.scm (register): Unconditionally call
  setup script with "register", and install any config file generated.
This commit is contained in:
Eric Bavier 2015-06-06 07:28:57 -05:00
parent b4b1fe9d2f
commit 6508ce55e9

View File

@ -166,13 +166,13 @@ generate the cache as it would clash in user profiles."
(package-name-version haskell) (package-name-version haskell)
"/package.conf.d")) "/package.conf.d"))
(id-rx (make-regexp "^id: *(.*)$")) (id-rx (make-regexp "^id: *(.*)$"))
(lib-rx (make-regexp "lib.*\\.(a|so)")) (config-file (string-append out "/" name ".conf"))
(config-file (string-append config-dir "/" name ".conf"))
(params (params
(list (string-append "--gen-pkg-config=" config-file)))) (list (string-append "--gen-pkg-config=" config-file))))
(unless (null? (find-files lib lib-rx)) (run-setuphs "register" params)
;; The conf file is created only when there is a library to register.
(when (file-exists? config-file)
(mkdir-p config-dir) (mkdir-p config-dir)
(run-setuphs "register" params)
(let ((config-file-name+id (let ((config-file-name+id
(call-with-ascii-input-file config-file (cut grep id-rx <>)))) (call-with-ascii-input-file config-file (cut grep id-rx <>))))
(rename-file config-file (rename-file config-file