~ruther/guix-local

4dab8c590650af0e78647e6e13fb9ac772e51db7 — Jan Nieuwenhuizen 10 years ago cba36e6
gnu: Add function libiconv-if-needed.

* gnu/packages/base.scm (libiconv-if-needed): New function.
1 files changed, 12 insertions(+), 1 deletions(-)

M gnu/packages/base.scm
M gnu/packages/base.scm => gnu/packages/base.scm +12 -1
@@ 46,7 46,8 @@
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system trivial)
  #:use-module (ice-9 match)
  #:export (glibc))
  #:export (glibc
            libiconv-if-needed))

;;; Commentary:
;;;


@@ 1032,6 1033,16 @@ program.  It supports a wide variety of different encodings.")
    (home-page "http://www.gnu.org/software/libiconv/")
    (license lgpl3+)))

(define* (libiconv-if-needed #:optional (target (%current-target-system)))
  "Return either a libiconv package specification to include in a dependency
list for platforms that have an incomplete libc, or the empty list.  If a
package needs iconv ,@(libiconv-if-needed) should be added."
  ;; POSIX C libraries provide iconv.  Platforms with an incomplete libc
  ;; without iconv, such as MinGW, must return the then clause.
  (if (target-mingw? target)
      `(("libiconv" ,libiconv))
      '()))

(define-public (canonical-package package)
  ;; Avoid circular dependency by lazily resolving 'commencement'.
  (let* ((iface (resolve-interface '(gnu packages commencement)))