93 lines
3.0 KiB
Scheme
93 lines
3.0 KiB
Scheme
;;; guile-fontconfig --- FFI bindings for FontConfig
|
|
;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
|
|
;;;
|
|
;;; This file is part of guile-fontconfig.
|
|
;;;
|
|
;;; Guile-fontconfig is free software; you can redistribute it and/or
|
|
;;; modify it under the terms of the GNU Lesser General Public License
|
|
;;; as published by the Free Software Foundation; either version 3 of
|
|
;;; the License, or (at your option) any later version.
|
|
;;;
|
|
;;; Guile-fontconfig is distributed in the hope that it will be
|
|
;;; useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
;;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
;;; See the GNU General Public License for more details.
|
|
;;;
|
|
;;; You should have received a copy of the GNU Lesser General Public
|
|
;;; License along with guile-fontconfig. If not, see
|
|
;;; <http://www.gnu.org/licenses/>.
|
|
|
|
;;; Commentary:
|
|
;;
|
|
;; GNU Guix development package. To build and install, run:
|
|
;;
|
|
;; guix package -f guix.scm
|
|
;;
|
|
;; To use as the basis for a development environment, run:
|
|
;;
|
|
;; guix environment -l guix.scm
|
|
;;
|
|
;;; Code:
|
|
|
|
(use-modules (ice-9 match)
|
|
(ice-9 popen)
|
|
(ice-9 rdelim)
|
|
(srfi srfi-1)
|
|
(srfi srfi-26)
|
|
(guix gexp)
|
|
(guix packages)
|
|
(guix licenses)
|
|
(guix git-download)
|
|
(guix build-system gnu)
|
|
((guix build utils) #:select (with-directory-excursion))
|
|
(gnu packages)
|
|
(gnu packages autotools)
|
|
(gnu packages guile)
|
|
(gnu packages pkg-config)
|
|
(gnu packages fontutils)
|
|
(gnu packages texinfo))
|
|
|
|
(define %source-dir (dirname (current-filename)))
|
|
|
|
(define git-file?
|
|
(let* ((pipe (with-directory-excursion %source-dir
|
|
(open-pipe* OPEN_READ "git" "ls-files")))
|
|
(files (let loop ((lines '()))
|
|
(match (read-line pipe)
|
|
((? eof-object?)
|
|
(reverse lines))
|
|
(line
|
|
(loop (cons line lines))))))
|
|
(status (close-pipe pipe)))
|
|
(lambda (file stat)
|
|
(match (stat:type stat)
|
|
('directory #t)
|
|
((or 'regular 'symlink)
|
|
(any (cut string-suffix? <> file) files))
|
|
(_ #f)))))
|
|
|
|
(package
|
|
(name "guile-fontconfig")
|
|
(version "0.0.1")
|
|
(source (local-file %source-dir #:recursive? #t #:select? git-file?))
|
|
(build-system gnu-build-system)
|
|
(arguments
|
|
'(#:make-flags '("GUILE_AUTO_COMPILE=0")
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'bootstrap
|
|
(lambda _ (zero? (system* "sh" "bootstrap")))))))
|
|
(native-inputs
|
|
`(("autoconf" ,autoconf)
|
|
("automake" ,automake)
|
|
("pkg-config" ,pkg-config)
|
|
("texinfo" ,texinfo)))
|
|
(inputs
|
|
`(("guile" ,guile-3.0)
|
|
("fontconfig" ,fontconfig)))
|
|
(synopsis "Guile bindings for FontConfig")
|
|
(description "Guile-fontconfig provides pure Guile Scheme bindings to the
|
|
FontConfig C shared library via the foreign function interface.")
|
|
(home-page "")
|
|
(license lgpl3+))
|