X-Git-Url: https://git.distorted.org.uk/~mdw/clg/blobdiff_plain/1dc849d71672aa3b250e852965d3b13b65f4e0f4..46e84256e0168f49ac84c3460bf9486e6bdfe001:/glib/glib.asd diff --git a/glib/glib.asd b/glib/glib.asd index 5c18f0b..f6fd3e7 100644 --- a/glib/glib.asd +++ b/glib/glib.asd @@ -27,8 +27,24 @@ (push :glib2.8 *features*)) #+sbcl -(when (string>= (lisp-implementation-version) "0.9.8") - (push :sbcl>=0.9.8 *features*)) +(progn + (defun sbcl-version () + (let ((dot1 (position #\. (lisp-implementation-version))) + (dot2 (position #\. (lisp-implementation-version) :from-end t))) + (values + (parse-integer (lisp-implementation-version) :end dot1) + (parse-integer (lisp-implementation-version) :start (1+ dot1) :end dot2) + (parse-integer (lisp-implementation-version) :start (1+ dot2))))) + (defun sbcl-version>= (req-major req-minor req-micro) + (multiple-value-bind (major minor micro) (sbcl-version) + (or + (> major req-major) + (and (= major req-major) (> minor req-minor)) + (and (= major req-major) (= minor req-minor) (>= micro req-micro))))) + (when (sbcl-version>= 0 9 8) + (push :sbcl>=0.9.8 *features*)) + (when (sbcl-version>= 0 9 10) + (push :sbcl>=0.9.10 *features*))) #+(and sbcl (not alien-callbacks)) (eval-when (:compile-toplevel :load-toplevel :execute)