chiark
/
gitweb
/
~mdw
/
clg
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added utils.lisp to the system
[clg]
/
tools
/
config.lisp
diff --git
a/tools/config.lisp
b/tools/config.lisp
index 1623a575163fe63b05d37fdf3ef459991ad1cb0f..acf99438bbd6ad946ded34b5397cfc73327085c1 100644
(file)
--- a/
tools/config.lisp
+++ b/
tools/config.lisp
@@
-1,4
+1,11
@@
-(defparameter *pkg-config* "pkg-config")
+(defpackage #:pkg-config
+ (:use #:common-lisp #+cmu #:ext #+sbcl #:sb-ext)
+ (:export #:pkg-cflags #:pkg-libs #:pkg-exists-p #:pkg-version
+ #:pkg-variable))
+
+(in-package #:pkg-config)
+
+(defparameter *pkg-config* "/usr/bin/pkg-config")
(defun split-string (string &key (start 0) (end (length string)))
(let ((position (position #\sp string :start start :end end)))
(defun split-string (string &key (start 0) (end (length string)))
(let ((position (position #\sp string :start start :end end)))
@@
-35,6
+42,7
@@
(defun read-string (&optional (stream *standard-input*)
((error 'end-of-file :stream stream)))))
((error 'end-of-file :stream stream)))))
+#+(or sbcl cmu)
(defun run-pkg-config (package error &rest options)
(let ((process
(run-program
(defun run-pkg-config (package error &rest options)
(let ((process
(run-program
@@
-52,10
+60,19
@@
(defun run-pkg-config (package error &rest options)
(process-close process)
(values output exit-code)))))
(process-close process)
(values output exit-code)))))
+#+clisp
+;; I haven't figured out how to do error checking with CLISP's run-program
+(defun run-pkg-config (package error &rest options)
+ (declare (ignore error))
+ (let ((stream (ext:run-program *pkg-config* :arguments (cons package options) :output :stream)))
+ (read-lines stream)))
(defun pkg-cflags (package)
(split-string (first (run-pkg-config package t "--cflags"))))
(defun pkg-cflags (package)
(split-string (first (run-pkg-config package t "--cflags"))))
+(defun pkg-libs (package)
+ (split-string (first (run-pkg-config package t "--libs"))))
+
(defun pkg-exists-p (package &key version atleast-version max-version
( error t))
(defun pkg-exists-p (package &key version atleast-version max-version
( error t))