[mcclim-cvs] CVS mcclim
thenriksen
thenriksen at common-lisp.net
Wed Nov 8 01:19:02 UTC 2006
Update of /project/mcclim/cvsroot/mcclim
In directory clnet:/tmp/cvs-serv25509
Modified Files:
mcclim.asd
Log Message:
Commit mcclim.asd changes to load Drei and the other added files. May
contain trace amounts of ugly (and necessary complexity).
--- /project/mcclim/cvsroot/mcclim/mcclim.asd 2006/11/05 19:00:54 1.32
+++ /project/mcclim/cvsroot/mcclim/mcclim.asd 2006/11/08 01:19:02 1.33
@@ -32,6 +32,16 @@
(defparameter *clim-directory* (directory-namestring *load-truename*))
+(eval-when (:compile-toplevel :load-toplevel :execute)
+ (defun find-swank-package ()
+ (find-package :swank))
+ (defun find-swank-system ()
+ (handler-case (asdf:find-system :swank)
+ (asdf:missing-component ())))
+ (defun find-swank ()
+ (or (find-swank-package)
+ (find-swank-system))))
+
;;; Legacy CMUCL support stuff
#+cmu
(progn
@@ -93,7 +103,7 @@
#+clisp "fix-clisp")))
(:file "package" :depends-on ("Lisp-Dep" "patch"))))
-(defsystem :clim-core
+(defsystem :clim-basic
:depends-on (:clim-lisp :spatial-trees)
:components ((:file "decls")
(:file "protocol-classes" :depends-on ("decls"))
@@ -145,7 +155,7 @@
"events"))))
(defsystem :goatee-core
- :depends-on (:clim-core)
+ :depends-on (:clim-basic)
:components
((:module "Goatee"
:components
@@ -169,67 +179,140 @@
(:file "presentation-history" :depends-on ("editing-stream" "buffer"
"flexivector" "editable-buffer"
"goatee-command"))))))
-
;;; CLIM-PostScript is not a backend in the normal sense.
;;; It is an extension (Chap. 35.1 of the spec) and is an
;;; "included" part of McCLIM. Hence the defsystem is here.
(defsystem :clim-postscript
- :depends-on (:clim-core)
- :components
- ((:module "Backends/PostScript"
- :pathname #.(make-pathname :directory '(:relative "Backends" "PostScript"))
- :components
- ((:file "package")
- (:file "encoding" :depends-on ("package"))
- (:file "paper" :depends-on ("package"))
- (:file "class" :depends-on ("paper" "package"))
- (:file "font" :depends-on ("encoding" "class" "paper" "package"))
- (:file "graphics" :depends-on ("encoding" "paper" "class" "font" "package"))
- (:file "sheet" :depends-on ("paper" "class" "graphics" "package"))
- (:file "afm" :depends-on ("class" "paper" "font" "package"))
- (:file "standard-metrics" :depends-on ("font" "package"))))))
+ :depends-on (:clim-basic)
+ :components
+ ((:module "Backends/PostScript"
+ :pathname #.(make-pathname :directory '(:relative "Backends" "PostScript"))
+ :components
+ ((:file "package")
+ (:file "encoding" :depends-on ("package"))
+ (:file "paper" :depends-on ("package"))
+ (:file "class" :depends-on ("paper" "package"))
+ (:file "font" :depends-on ("encoding" "class" "paper" "package"))
+ (:file "graphics" :depends-on ("encoding" "paper" "class" "font" "package"))
+ (:file "sheet" :depends-on ("paper" "class" "graphics" "package"))
+ (:file "afm" :depends-on ("class" "paper" "font" "package"))
+ (:file "standard-metrics" :depends-on ("font" "package"))))))
+
+(defsystem :clim-core
+ :depends-on (:clim-basic :goatee-core :clim-postscript)
+ :components ((:file "text-formatting")
+ (:file "defresource")
+ (:file "input-editing")
+ (:file "presentations")
+ (:file "pointer-tracking" :depends-on ("input-editing"))
+ (:file "graph-formatting")
+ (:file "frames" :depends-on ("commands" "presentations" "presentation-defs"
+ "pointer-tracking" "incremental-redisplay"))
+ (:file "table-formatting" :depends-on ("presentation-defs" "panes"
+ "presentations" "input-editing"))
+ (:file "bordered-output" :depends-on ("input-editing" "incremental-redisplay"
+ "presentation-defs" "panes"))
+ (:file "dialog-views" :depends-on ("presentations" "incremental-redisplay"
+ "bordered-output" "presentation-defs"))
+ (:file "presentation-defs" :depends-on ("input-editing" "presentations"))
+ (:file "gadgets" :depends-on ("commands" "pointer-tracking" "input-editing"
+ "frames" "incremental-redisplay" "panes"))
+ (:file "describe" :depends-on ("presentations" "presentation-defs" "table-formatting"))
+ (:file "commands" :depends-on ("input-editing" "presentations"
+ "presentation-defs"))
+ (:file "incremental-redisplay" :depends-on ("presentation-defs"))
+ (:file "menu-choose" :depends-on ("commands" "table-formatting" "presentation-defs"
+ "panes" "frames" "pointer-tracking"
+ "presentations"))
+ (:file "menu" :depends-on ("panes" "commands" "gadgets"
+ "presentations" "frames"))
+ (:file "panes" :depends-on ("incremental-redisplay" "presentations"
+ "presentation-defs" "input-editing" "frames"))
+ (:file "dialog" :depends-on ("panes" "frames" "incremental-redisplay"
+ "table-formatting" "presentations"
+ "bordered-output" "presentation-defs"
+ "dialog-views" "input-editing"
+ "commands"))
+ (:file "builtin-commands" :depends-on ("table-formatting" "commands" "presentations"
+ "presentation-defs" "input-editing"))))
+
+(defsystem :esa-mcclim
+ :depends-on (:clim-core)
+ :components ((:module "ESA"
+ :components ((:file "packages")
+ (:file "utils" :depends-on ("packages"))
+ (:file "colors" :depends-on ("packages"))
+ (:file "esa" :depends-on ("colors" "packages" "utils"))
+ (:file "esa-buffer" :depends-on ("packages" "esa"))
+ (:file "esa-io" :depends-on ("packages" "esa" "esa-buffer"))
+ (:file "esa-command-parser" :depends-on ("packages" "esa"))))))
+
+
+
+(defsystem :drei-mcclim
+ :depends-on (:flexichain :esa-mcclim :clim-core #.(if (find-swank-system) :swank (values)))
+ :components
+ ((:module "cl-automaton"
+ :pathname #.(make-pathname :directory '(:relative "Drei" "cl-automaton"))
+ :components ((:file "automaton-package")
+ (:file "eqv-hash" :depends-on ("automaton-package"))
+ (:file "state-and-transition" :depends-on ("eqv-hash"))
+ (:file "automaton" :depends-on ("state-and-transition" "eqv-hash"))
+ (:file "regexp" :depends-on ("automaton"))))
+ (:module "Persistent"
+ :pathname #.(make-pathname :directory '(:relative "Drei" "Persistent"))
+ :components ((:file "binseq-package")
+ (:file "binseq" :depends-on ("binseq-package"))
+ (:file "obinseq" :depends-on ("binseq-package" "binseq"))
+ (:file "binseq2" :depends-on ("binseq-package" "obinseq" "binseq"))))
+ (:module "Drei" :depends-on ("cl-automaton" "Persistent")
+ :components ((:file "packages")
+ (:file "buffer" :depends-on ("packages"))
+ (:file "motion" :depends-on ("packages" "buffer" "syntax"))
+ (:file "editing" :depends-on ("packages" "buffer" "syntax" "motion" "kill-ring"))
+ (:file "base" :depends-on ("packages" "buffer" "persistent-buffer" "kill-ring"))
+ (:file "syntax" :depends-on ("packages" "buffer" "base"))
+ (:file "drei" :depends-on ("packages" "syntax" "buffer" "base"
+ "persistent-undo" "persistent-buffer" "abbrev"
+ "delegating-buffer" "undo" "motion" "editing"))
+ (:file "drei-clim" :depends-on ("drei"))
+ (:file "drei-redisplay" :depends-on ("drei-clim"))
+ (:file "input-editor" :depends-on ("drei-redisplay" "lisp-syntax"))
+ (:file "fundamental-syntax" :depends-on ("packages" "drei-redisplay"))
+ (:file "abbrev" :depends-on ("packages"))
+ (:file "kill-ring" :depends-on ("packages"))
+ (:file "undo" :depends-on ("packages"))
+ (:file "delegating-buffer" :depends-on ("packages" "buffer"))
+ (:file "basic-commands" :depends-on ("drei-clim" "motion" "editing"))
+ (:file "core" :depends-on ("drei"))
+ (:file "rectangle" :depends-on ("core"))
+ (:file "core-commands" :depends-on ("core" "rectangle" "drei-clim"))
+ (:file "persistent-buffer"
+ :pathname #.(make-pathname :directory '(:relative "Persistent")
+ :name "persistent-buffer"
+ :type "lisp")
+ :depends-on ("packages"))
+ (:file "persistent-undo"
+ :pathname #p"Persistent/persistent-undo.lisp"
+ :depends-on ("packages" "buffer" "persistent-buffer" "undo"))
+ (:file "misc-commands" :depends-on ("basic-commands"))
+ (:file "unicode-commands" :depends-on ("core" "drei-clim"))
+ (:file "search-commands" :depends-on ("core" "drei-clim"))
+ (:file "lisp-syntax" :depends-on ("core" "motion" "fundamental-syntax"))
+ (:file "lisp-syntax-swine" :depends-on ("lisp-syntax"))
+ (:file "lisp-syntax-commands" :depends-on ("lisp-syntax-swine" "misc-commands"))
+ #.(if (find-swank)
+ '(:file "lisp-syntax-swank" :depends-on ("lisp-syntax"))
+ (values))))))
(defsystem :clim
- :depends-on (:clim-core :goatee-core)
- :components
- ((:file "text-formatting")
- (:file "input-editing")
- (:file "presentations")
- (:file "defresource")
- (:file "presentation-defs" :depends-on ("input-editing" "presentations"))
- (:file "pointer-tracking" :depends-on ("input-editing"))
- (:file "commands" :depends-on ("input-editing" "presentations"
- "presentation-defs"))
- (:file "incremental-redisplay" :depends-on ("presentation-defs"))
- (:file "frames" :depends-on ("commands" "presentations" "presentation-defs"
- "pointer-tracking" "incremental-redisplay"))
- (:file "panes" :depends-on ("incremental-redisplay" "presentations"
- "presentation-defs" "input-editing" "frames"))
- (:file "gadgets" :depends-on ("commands" "pointer-tracking" "input-editing"
- "frames" "incremental-redisplay" "panes"))
- (:file "menu" :depends-on ("panes" "commands" "gadgets"
- "presentations" "frames"))
- (:file "table-formatting" :depends-on ("presentation-defs" "panes"
- "presentations" "input-editing"))
- (:file "graph-formatting")
- (:file "bordered-output" :depends-on ("input-editing" "incremental-redisplay"
- "presentation-defs" "panes"))
- (:file "dialog-views" :depends-on ("presentations" "incremental-redisplay"
- "bordered-output" "presentation-defs"))
- (:file "dialog" :depends-on ("panes" "frames" "incremental-redisplay"
- "table-formatting" "presentations"
- "bordered-output" "presentation-defs"
- "dialog-views" "input-editing"
- "commands"))
- (:file "builtin-commands" :depends-on ("table-formatting" "commands" "presentations"
- "presentation-defs" "input-editing"))
- (:file "describe" :depends-on ("presentations" "presentation-defs" "table-formatting"))
- (:file "menu-choose" :depends-on ("commands" "table-formatting" "presentation-defs"
- "panes" "frames" "pointer-tracking"
- "presentations"))
- (:file "Goatee/presentation-history" :depends-on ("presentation-defs") ; XXX: this is loaded as part of the Goatee system. huh?
- :pathname #.(make-pathname :directory '(:relative "Goatee") :name "presentation-history" :type "lisp"))
- ))
+ :depends-on (:clim-core :goatee-core :clim-postscript :drei-mcclim)
+ :components
+ ((:file "Goatee/presentation-history" ; XXX: this is loaded as part of the Goatee system. huh?
+ :pathname #.(make-pathname :directory '(:relative "Goatee") :name "presentation-history" :type "lisp"))
+ (:file "input-editing-goatee")
+ (:file "input-editing-drei")
+ (:file "text-editor-gadget")))
(defsystem :clim-clx
:depends-on (:clim #+(or sbcl openmcl ecl allegro) :clx)
@@ -437,3 +520,15 @@
(defmethod perform :after ((op load-op) (c (eql (find-system :mcclim))))
(pushnew :clim *features*)
(pushnew :mcclim *features*))
+
+;; XXX This is very ugly, but ESA and Drei need to know whether they
+;; are being compiled as part of McCLIM, or in another CLIM
+;; implementation.
+(defmethod perform :around (op c)
+ (if (and (or (eql (component-system c) (find-system :esa-mcclim))
+ (eql (component-system c) (find-system :drei-mcclim)))
+ (not (find :building-mcclim *features*)))
+ (unwind-protect (progn (push :building-mcclim *features*)
+ (call-next-method))
+ (setf *features* (delete :building-mcclim *features*)))
+ (call-next-method)))
More information about the Mcclim-cvs
mailing list