300d704e |
1 | (defparameter *pkg-config* "/usr/bin/pkg-config") |
2 | |
3 | (defun split-string (string &key (start 0) end) |
4 | (let ((position (position #\sp string :start start :end end))) |
5 | (if position |
6 | (cons |
7 | (subseq string start position) |
8 | (split-string string :start (1+ position) :end end)) |
9 | (list (subseq string start end))))) |
10 | |
11 | (defun run-pkg-config (package &rest options) |
560af5c5 |
12 | (let ((process |
13 | (run-program |
300d704e |
14 | *pkg-config* (cons package options) :wait t :output :stream))) |
560af5c5 |
15 | (unless process |
300d704e |
16 | (error "Unable to run ~A" *pkg-config*)) |
17 | (unless (zerop (process-exit-code process)) |
18 | (error "~A: ~A" *pkg-config* (read-line (process-output process)))) |
560af5c5 |
19 | (prog1 |
300d704e |
20 | (delete-if #'(lambda (str) (string= str "")) (split-string (read-line (process-output process)))) |
21 | (process-close process)))) |
22 | |
23 | |
24 | (defun pkg-cflags (package) |
25 | (run-pkg-config package "--cflags")) |