Author: mkocic Date: Wed May 24 08:43:08 2006 New Revision: 2
Modified: trunk/asdf-addons/asdf-cache.lisp Log: Added support for exclusions. Exclueded folders (and it's subfolders) will not be cached.
Modified: trunk/asdf-addons/asdf-cache.lisp ============================================================================== --- trunk/asdf-addons/asdf-cache.lisp (original) +++ trunk/asdf-addons/asdf-cache.lisp Wed May 24 08:43:08 2006 @@ -1,11 +1,13 @@ (defpackage #:asdf-cache (:use #:cl) - (:export #:*asdf-cache*)) + (:export #:*asdf-cache* + #:*exclusions*))
(in-package #:asdf-cache)
;;; clc like functionality (defparameter *asdf-cache* nil) +(defparameter *exclusions* nil)
(defparameter *implementation-features* '(:allegro :lispworks :sbcl :openmcl :cmu :clisp :ccl :corman :cormanlisp @@ -45,19 +47,28 @@ (first-of *architecture-features*) (lisp-version-string))))
- +(defun excluded (path) + (let ((target (directory-namestring path))) + (dolist (exc *exclusions*) + ;;(format t "exc = ~A~&" exc) + ;;(format t "target = ~A~&" target) + (when (search exc target) + (return t))))) + +(defun calculate-path (path) + (if (excluded path) + path + (merge-pathnames + (make-pathname :directory + (append + (pathname-directory *asdf-cache*) + (list ".fasls" (unique-directory-name)) + (rest (pathname-directory path)))) + path)))
(defmethod asdf:output-files :around ((op asdf:compile-op) (src asdf:source-file)) (unless *asdf-cache* (error "*asdf-cache* must be set to not nil value")) (let ((paths (call-next-method))) - (mapcar (lambda (path) - (merge-pathnames - (make-pathname :directory - (append - (pathname-directory *asdf-cache*) - (list ".fasls" (unique-directory-name)) - (rest (pathname-directory path)))) - path)) - paths))) - + (mapcar #'calculate-path + paths))) \ No newline at end of file