X-Git-Url: https://git.distorted.org.uk/~mdw/clg/blobdiff_plain/824e0c2e9db85cd2ede990450ad55b9f3fade96a..bd7791634c0cbb12dd3ca8bf16e67bedab027d8b:/tools/asdf-extensions.lisp diff --git a/tools/asdf-extensions.lisp b/tools/asdf-extensions.lisp index 5b6870c..94da8c7 100644 --- a/tools/asdf-extensions.lisp +++ b/tools/asdf-extensions.lisp @@ -1,6 +1,6 @@ (in-package :asdf) -(export '*dso-extension*) +(export '(*dso-extension* *operation* *system* *component*)) (defparameter *dso-extension* #-(or darwin win32)"so" #+darwin"dylib" #+win32"dll") @@ -169,3 +169,16 @@ (defmethod operation-done-p ((o operation) (lib library)) t) + + +;;; Binding of dynamic variables during perform + +(defvar *operation* nil) +(defvar *system* nil) +(defvar *component* nil) + +(defmethod perform :around ((operation operation) (c component)) + (let ((*operation* operation) + (*component* c) + (*system* (component-system c))) + (call-next-method)))