/[mcclim]/mcclim/mcclim.asd
ViewVC logotype

Contents of /mcclim/mcclim.asd

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.75 - (hide annotations)
Thu Jan 31 12:14:05 2008 UTC (6 years, 2 months ago) by thenriksen
Branch: MAIN
Changes since 1.74: +1 -1 lines
Moved with-output-as-presentation to presentations.lisp, so it can be available when input-editing.lisp is compiled.
1 afuchs 1.1 ;;; -*- Mode: Lisp -*-
2    
3     ;;; (c) copyright 1998,1999,2000 by Michael McDonald (mikemac@mikemac.com)
4     ;;; (c) copyright 2000 by
5     ;;; Robert Strandh (strandh@labri.u-bordeaux.fr)
6     ;;; (c) copyright 2005 by
7 afuchs 1.2 ;;; Andreas Fuchs (asf@boinkor.net)
8 afuchs 1.1 ;;;
9     ;;; This library is free software; you can redistribute it and/or
10     ;;; modify it under the terms of the GNU Library General Public
11     ;;; License as published by the Free Software Foundation; either
12     ;;; version 2 of the License, or (at your option) any later version.
13     ;;;
14     ;;; This library is distributed in the hope that it will be useful,
15     ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16     ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17     ;;; Library General Public License for more details.
18     ;;;
19     ;;; You should have received a copy of the GNU Library General Public
20     ;;; License along with this library; if not, write to the
21     ;;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22     ;;; Boston, MA 02111-1307 USA.
23    
24    
25     ;;; Really, I wouldn't bother with anything but ASDF. Almost every lisp
26     ;;; ships with it, and it has the added benefit of ASDF-INSTALL.
27     ;;; Get ASDF, and be welcome to the 21st century. -- [2005-01-31:asf]
28    
29     (defpackage :mcclim.system
30     (:use :asdf :cl))
31     (in-package :mcclim.system)
32    
33     (defparameter *clim-directory* (directory-namestring *load-truename*))
34    
35 thenriksen 1.33 (eval-when (:compile-toplevel :load-toplevel :execute)
36     (defun find-swank-package ()
37     (find-package :swank))
38     (defun find-swank-system ()
39     (handler-case (asdf:find-system :swank)
40     (asdf:missing-component ())))
41     (defun find-swank ()
42     (or (find-swank-package)
43 thenriksen 1.46 (find-swank-system)))
44 thenriksen 1.47 (defun dep-on-swank ()
45     (if (and (find-swank-system)
46     (not (find-package :swank)))
47 thenriksen 1.49 '(:and)
48     '(:or)))
49 thenriksen 1.46 (defun ifswank ()
50     (if (find-swank)
51 thenriksen 1.49 '(:and)
52     '(:or))))
53 thenriksen 1.33
54 afuchs 1.1 ;;; Legacy CMUCL support stuff
55     #+cmu
56     (progn
57     (unless (fboundp 'ext:stream-read-char)
58     (unless (ignore-errors (ext:search-list "gray-streams:"))
59     (setf (ext:search-list "gray-streams:")
60     '("target:pcl/" "library:subsystems/")))
61 afuchs 1.4 (if (fboundp 'extensions:without-package-locks)
62     (extensions:without-package-locks
63 afuchs 1.1 (load "gray-streams:gray-streams-library"))
64     (load "gray-streams:gray-streams-library")))
65 dlichteblau 1.68 #-(or clx clim-gtkairo clim-graphic-forms)
66 afuchs 1.1 (require :clx)
67     #+mp (when (eq mp::*initial-process* mp::*current-process*)
68     (format t "~%~%You need to run (mp::startup-idle-and-top-level-loops) to start up the multiprocessing support.~%~%")))
69    
70 afuchs 1.5 ;;; Make CLX asdf-loadable on Allegro 6.2
71     ;;; possibly this should be further refined to funciton properly for
72     ;;; Allegro on Windows platforms. [2005/04/18:rpg]
73 tmoore 1.16
74 afuchs 1.5 #+allegro
75     (progn
76     (defclass requireable-system (asdf:system)
77 tmoore 1.16 ())
78 afuchs 1.5 (defmethod asdf:perform ((op asdf:load-op) (system requireable-system))
79 tmoore 1.11 (require (intern (slot-value system 'asdf::name) :keyword)))
80 afuchs 1.5 (defmethod asdf::traverse ((op asdf:load-op) (system requireable-system))
81     (list (cons op system)))
82     (defsystem :clx
83     :class requireable-system))
84    
85 rschlatte 1.64 ;;; Required for the beagle backend (not activated by default)
86 dlichteblau 1.67 #+clim-beagle
87 rschlatte 1.64 (progn
88     (require :cocoa)
89     (require :objc-support))
90    
91 afuchs 1.1 (defmacro clim-defsystem ((module &key depends-on) &rest components)
92     `(progn
93     (asdf:defsystem ,module
94     ,@(and depends-on
95     `(:depends-on ,depends-on))
96     :serial t
97     :components
98     (,@(loop for c in components
99     for p = (merge-pathnames
100     (parse-namestring c)
101     (make-pathname :type "lisp"
102     :defaults *clim-directory*))
103 crhodes 1.6 collect `(:file ,(namestring p) :pathname ,p))))))
104 afuchs 1.1
105     (defsystem :clim-lisp
106     :components
107     (;; First possible patches
108     (:file "patch")
109     (:module "Lisp-Dep"
110     :depends-on ("patch")
111     :components
112     ((:file #+cmu "fix-cmu"
113 tmoore 1.10 #+scl "fix-scl"
114 afuchs 1.1 #+excl "fix-acl"
115     #+sbcl "fix-sbcl"
116     #+openmcl "fix-openmcl"
117     #+lispworks "fix-lispworks"
118     #+clisp "fix-clisp")))
119 afuchs 1.25 (:file "package" :depends-on ("Lisp-Dep" "patch"))))
120 afuchs 1.1
121 thenriksen 1.33 (defsystem :clim-basic
122 dlichteblau 1.45 :depends-on (:clim-lisp :spatial-trees :flexichain)
123 afuchs 1.1 :components ((:file "decls")
124 tmoore 1.8 (:file "protocol-classes" :depends-on ("decls"))
125 afuchs 1.1 (:module "Lisp-Dep"
126     :depends-on ("decls")
127     :components
128 afuchs 1.26 ((:file #.(first
129     (list
130     #+(and :cmu :mp (not :pthread)) "mp-cmu"
131     #+scl "mp-scl"
132     #+sb-thread "mp-sbcl"
133     #+excl "mp-acl"
134     #+openmcl "mp-openmcl"
135     #+lispworks "mp-lw"
136     #| fall back |# "mp-nil")))))
137 afuchs 1.1 (:file "utils" :depends-on ("decls" "Lisp-Dep"))
138 tmoore 1.8 (:file "design" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "utils"))
139     (:file "X11-colors" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "design"))
140     (:file "coordinates" :depends-on ("decls" "protocol-classes" "Lisp-Dep"))
141 afuchs 1.1 (:file "setf-star" :depends-on ("decls" "Lisp-Dep"))
142 tmoore 1.8 (:file "transforms" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "coordinates" "utils"))
143     (:file "regions" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "coordinates" "utils" "transforms" "setf-star" "design"))
144     (:file "sheets" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "utils" "transforms" "regions"))
145     (:file "pixmap" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "sheets" "transforms" "regions"))
146     (:file "events" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "transforms" "sheets" "utils"))
147     (:file "ports" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "events" "sheets" "pixmap" "utils"))
148     (:file "grafts" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "sheets" "ports" "transforms" "regions"))
149     (:file "medium" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "ports" "X11-colors" "utils" "pixmap" "regions"
150 afuchs 1.1 "transforms" "design"))
151 tmoore 1.8 (:file "output" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "medium"))
152     (:file "input" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "events" "regions" "sheets"))
153     (:file "repaint" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "sheets" "events"))
154     (:file "graphics" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "output" "utils" "medium" "sheets" "pixmap"
155 afuchs 1.1 "regions" "design" "transforms"))
156 tmoore 1.8 (:file "views" :depends-on ("utils" "protocol-classes"))
157     (:file "stream-output" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "design" "utils" "X11-colors" "views"
158 afuchs 1.1 "output" "sheets" "regions" "graphics"
159     "medium" "setf-star"))
160 tmoore 1.8 (:file "recording" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "output" "coordinates" "graphics" "design"
161 afuchs 1.1 "medium" "transforms" "regions" "sheets"
162     "utils" "stream-output"))
163 tmoore 1.8 (:file "encapsulate" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "sheets" "graphics" "utils" "medium" "input"
164 afuchs 1.1 "stream-output" "recording"))
165 tmoore 1.8 (:file "stream-input" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "input" "ports" "sheets" "events"
166 afuchs 1.1 "encapsulate" "transforms" "utils"))
167 tmoore 1.8 (:file "text-selection" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "X11-colors" "medium" "output"
168 afuchs 1.1 "transforms" "sheets" "stream-output"
169     "ports" "recording" "regions"
170 dlichteblau 1.45 "events"))
171     (:file "bezier" :depends-on ("recording"))))
172 afuchs 1.1
173     (defsystem :goatee-core
174 thenriksen 1.33 :depends-on (:clim-basic)
175 afuchs 1.1 :components
176     ((:module "Goatee"
177     :components
178     ((:file "conditions")
179     (:file "dbl-list")
180     (:file "flexivector" :depends-on ("conditions" "dbl-list"))
181     (:file "buffer" :depends-on ("conditions" "flexivector" "dbl-list"))
182     (:file "editable-buffer" :depends-on ("dbl-list" "flexivector" "buffer"))
183     (:file "editable-area" :depends-on ("flexivector" "editable-buffer" "dbl-list"
184     "buffer"))
185     (:file "clim-area" :depends-on ("flexivector" "dbl-list" "buffer"
186     "editable-area" "editable-buffer"))
187     (:file "kill-ring" :depends-on ("editable-buffer" "dbl-list" "flexivector"
188     "buffer"))
189     (:file "goatee-command" :depends-on ("conditions" "clim-area" "dbl-list"
190     "editable-buffer" "kill-ring"
191     "editable-area" "buffer" "flexivector"))
192     (:file "editing-stream" :depends-on ("goatee-command" "kill-ring" "dbl-list"
193     "conditions" "editable-buffer"
194     "flexivector" "clim-area" "buffer"))
195     (:file "presentation-history" :depends-on ("editing-stream" "buffer"
196     "flexivector" "editable-buffer"
197     "goatee-command"))))))
198     ;;; CLIM-PostScript is not a backend in the normal sense.
199     ;;; It is an extension (Chap. 35.1 of the spec) and is an
200     ;;; "included" part of McCLIM. Hence the defsystem is here.
201     (defsystem :clim-postscript
202 thenriksen 1.33 :depends-on (:clim-basic)
203     :components
204     ((:module "Backends/PostScript"
205     :pathname #.(make-pathname :directory '(:relative "Backends" "PostScript"))
206     :components
207     ((:file "package")
208     (:file "encoding" :depends-on ("package"))
209     (:file "paper" :depends-on ("package"))
210     (:file "class" :depends-on ("paper" "package"))
211     (:file "font" :depends-on ("encoding" "class" "paper" "package"))
212     (:file "graphics" :depends-on ("encoding" "paper" "class" "font" "package"))
213     (:file "sheet" :depends-on ("paper" "class" "graphics" "package"))
214     (:file "afm" :depends-on ("class" "paper" "font" "package"))
215     (:file "standard-metrics" :depends-on ("font" "package"))))))
216    
217     (defsystem :clim-core
218     :depends-on (:clim-basic :goatee-core :clim-postscript)
219     :components ((:file "text-formatting")
220     (:file "defresource")
221     (:file "presentations")
222 thenriksen 1.75 (:file "input-editing" :depends-on ("presentations"))
223 thenriksen 1.33 (:file "pointer-tracking" :depends-on ("input-editing"))
224     (:file "graph-formatting")
225     (:file "frames" :depends-on ("commands" "presentations" "presentation-defs"
226     "pointer-tracking" "incremental-redisplay"))
227     (:file "table-formatting" :depends-on ("presentation-defs" "panes"
228     "presentations" "input-editing"))
229     (:file "bordered-output" :depends-on ("input-editing" "incremental-redisplay"
230     "presentation-defs" "panes"))
231     (:file "dialog-views" :depends-on ("presentations" "incremental-redisplay"
232     "bordered-output" "presentation-defs"))
233     (:file "presentation-defs" :depends-on ("input-editing" "presentations"))
234     (:file "gadgets" :depends-on ("commands" "pointer-tracking" "input-editing"
235     "frames" "incremental-redisplay" "panes"))
236     (:file "describe" :depends-on ("presentations" "presentation-defs" "table-formatting"))
237     (:file "commands" :depends-on ("input-editing" "presentations"
238     "presentation-defs"))
239     (:file "incremental-redisplay" :depends-on ("presentation-defs"))
240     (:file "menu-choose" :depends-on ("commands" "table-formatting" "presentation-defs"
241     "panes" "frames" "pointer-tracking"
242     "presentations"))
243     (:file "menu" :depends-on ("panes" "commands" "gadgets"
244     "presentations" "frames"))
245     (:file "panes" :depends-on ("incremental-redisplay" "presentations"
246     "presentation-defs" "input-editing" "frames"))
247     (:file "dialog" :depends-on ("panes" "frames" "incremental-redisplay"
248     "table-formatting" "presentations"
249     "bordered-output" "presentation-defs"
250     "dialog-views" "input-editing"
251     "commands"))
252 thenriksen 1.34 (:file "builtin-commands" :depends-on ("table-formatting"
253     "commands" "presentations"
254     "dialog" "presentation-defs"
255     "input-editing"))))
256 thenriksen 1.33
257     (defsystem :esa-mcclim
258     :depends-on (:clim-core)
259     :components ((:module "ESA"
260     :components ((:file "packages")
261     (:file "utils" :depends-on ("packages"))
262     (:file "colors" :depends-on ("packages"))
263     (:file "esa" :depends-on ("colors" "packages" "utils"))
264     (:file "esa-buffer" :depends-on ("packages" "esa"))
265     (:file "esa-io" :depends-on ("packages" "esa" "esa-buffer"))
266     (:file "esa-command-parser" :depends-on ("packages" "esa"))))))
267    
268    
269    
270     (defsystem :drei-mcclim
271 thenriksen 1.47 :depends-on (:flexichain :esa-mcclim :clim-core #+#.(mcclim.system::dep-on-swank) :swank)
272 thenriksen 1.33 :components
273     ((:module "cl-automaton"
274     :pathname #.(make-pathname :directory '(:relative "Drei" "cl-automaton"))
275     :components ((:file "automaton-package")
276     (:file "eqv-hash" :depends-on ("automaton-package"))
277     (:file "state-and-transition" :depends-on ("eqv-hash"))
278     (:file "automaton" :depends-on ("state-and-transition" "eqv-hash"))
279     (:file "regexp" :depends-on ("automaton"))))
280     (:module "Persistent"
281     :pathname #.(make-pathname :directory '(:relative "Drei" "Persistent"))
282     :components ((:file "binseq-package")
283     (:file "binseq" :depends-on ("binseq-package"))
284     (:file "obinseq" :depends-on ("binseq-package" "binseq"))
285     (:file "binseq2" :depends-on ("binseq-package" "obinseq" "binseq"))))
286     (:module "Drei" :depends-on ("cl-automaton" "Persistent")
287     :components ((:file "packages")
288     (:file "buffer" :depends-on ("packages"))
289 thenriksen 1.65 (:file "delegating-buffer" :depends-on ("packages" "buffer"))
290 thenriksen 1.33 (:file "motion" :depends-on ("packages" "buffer" "syntax"))
291     (:file "editing" :depends-on ("packages" "buffer" "syntax" "motion" "kill-ring"))
292 thenriksen 1.65 (:file "base" :depends-on ("packages" "buffer" "persistent-buffer" "kill-ring"
293     "delegating-buffer"))
294 thenriksen 1.33 (:file "syntax" :depends-on ("packages" "buffer" "base"))
295 thenriksen 1.70 (:file "modes" :depends-on ("packages" "syntax"))
296 thenriksen 1.63 (:file "views" :depends-on ("packages" "buffer" "base" "syntax" "persistent-undo"
297     "persistent-buffer" "undo" "abbrev"
298 thenriksen 1.70 "delegating-buffer" "modes"))
299 thenriksen 1.63 (:file "drei" :depends-on ("packages" "views" "motion" "editing"))
300 thenriksen 1.33 (:file "drei-clim" :depends-on ("drei"))
301     (:file "drei-redisplay" :depends-on ("drei-clim"))
302 thenriksen 1.73 (:file "drawing-options" :depends-on ("drei-redisplay"))
303 afuchs 1.50 (:file "input-editor" :depends-on ("drei-redisplay" "lisp-syntax" "core"))
304 thenriksen 1.33 (:file "abbrev" :depends-on ("packages"))
305     (:file "kill-ring" :depends-on ("packages"))
306     (:file "undo" :depends-on ("packages"))
307     (:file "basic-commands" :depends-on ("drei-clim" "motion" "editing"))
308     (:file "core" :depends-on ("drei"))
309 thenriksen 1.63 (:file "fundamental-syntax" :depends-on ("packages" "drei-redisplay" "core"))
310 thenriksen 1.52 (:file "buffer-streams" :depends-on ("core"))
311 thenriksen 1.33 (:file "rectangle" :depends-on ("core"))
312 thenriksen 1.62 (:file "targets" :depends-on ("core"))
313 thenriksen 1.33 (:file "core-commands" :depends-on ("core" "rectangle" "drei-clim"))
314     (:file "persistent-buffer"
315     :pathname #.(make-pathname :directory '(:relative "Persistent")
316     :name "persistent-buffer"
317     :type "lisp")
318     :depends-on ("packages"))
319     (:file "persistent-undo"
320     :pathname #p"Persistent/persistent-undo.lisp"
321     :depends-on ("packages" "buffer" "persistent-buffer" "undo"))
322     (:file "misc-commands" :depends-on ("basic-commands"))
323     (:file "unicode-commands" :depends-on ("core" "drei-clim"))
324 thenriksen 1.62 (:file "search-commands" :depends-on ("core" "targets" "drei-clim"))
325 thenriksen 1.73 (:file "lr-syntax" :depends-on ("fundamental-syntax" "core" "drawing-options"))
326 thenriksen 1.56 (:file "lisp-syntax" :depends-on ("lr-syntax" "motion" "core"))
327 thenriksen 1.33 (:file "lisp-syntax-swine" :depends-on ("lisp-syntax"))
328     (:file "lisp-syntax-commands" :depends-on ("lisp-syntax-swine" "misc-commands"))
329 thenriksen 1.46 #+#.(mcclim.system::ifswank) (:file "lisp-syntax-swank" :depends-on ("lisp-syntax"))))))
330 afuchs 1.1
331 thenriksen 1.36 (defsystem :drei-tests
332     :depends-on (:drei-mcclim :fiveam)
333     :components
334     ((:module "Tests"
335     :pathname #.(make-pathname :directory '(:relative "Drei" "Tests"))
336     :components
337     ((:module
338     "cl-automaton"
339     :depends-on ("testing")
340     :components
341 thenriksen 1.58 ((:file "automaton-tests")
342     (:file "state-and-transition-tests" :depends-on ("automaton-tests"))
343     (:file "eqv-hash-tests" :depends-on ("automaton-tests"))
344     (:file "regexp-tests" :depends-on ("automaton-tests"))))
345 thenriksen 1.36 (:file "packages")
346     (:file "testing" :depends-on ("packages"))
347     (:file "buffer-tests" :depends-on ("testing"))
348     (:file "base-tests" :depends-on ("testing"))
349     (:file "kill-ring-tests" :depends-on ("testing"))
350     (:file "motion-tests" :depends-on ("testing"))
351     (:file "editing-tests" :depends-on ("testing"))
352     (:file "core-tests" :depends-on ("testing"))
353 thenriksen 1.52 (:file "buffer-streams-tests" :depends-on ("testing"))
354 thenriksen 1.36 (:file "rectangle-tests" :depends-on ("testing"))
355 thenriksen 1.38 (:file "undo-tests" :depends-on ("testing"))
356 thenriksen 1.57 (:file "lisp-syntax-tests" :depends-on ("testing" "motion-tests"))
357     (:file "lisp-syntax-swine-tests" :depends-on ("lisp-syntax-tests"))))))
358 thenriksen 1.36
359 afuchs 1.1 (defsystem :clim
360 thenriksen 1.33 :depends-on (:clim-core :goatee-core :clim-postscript :drei-mcclim)
361     :components
362     ((:file "Goatee/presentation-history" ; XXX: this is loaded as part of the Goatee system. huh?
363     :pathname #.(make-pathname :directory '(:relative "Goatee") :name "presentation-history" :type "lisp"))
364     (:file "input-editing-goatee")
365     (:file "input-editing-drei")
366 dlichteblau 1.48 (:file "text-editor-gadget")
367 thenriksen 1.49 (:file "Extensions/rgb-image" :pathname #.(make-pathname :directory '(:relative "Extensions")
368 dlichteblau 1.54 :name "rgb-image"))
369     (:file "Extensions/tab-layout"
370     :pathname #.(make-pathname :directory '(:relative "Extensions")
371     :name "tab-layout"))))
372 afuchs 1.1
373     (defsystem :clim-clx
374 afuchs 1.5 :depends-on (:clim #+(or sbcl openmcl ecl allegro) :clx)
375 afuchs 1.1 :components
376     ((:module "Backends/CLX"
377     :pathname #.(make-pathname :directory '(:relative "Backends" "CLX"))
378     :components
379     ((:file "package")
380 afuchs 1.2 (:file "image" :depends-on ("package"))
381 afuchs 1.1 (:file "keysyms-common" :depends-on ("package"))
382     (:file "keysyms" :depends-on ("keysyms-common" "package"))
383     (:file "keysymdef" :depends-on ("keysyms-common" "package"))
384     (:file "port" :depends-on ("keysyms-common" "keysyms" "package"))
385     (:file "medium" :depends-on ("port" "keysyms" "package"))
386     (:file "graft" :depends-on ("port" "package"))
387     (:file "frame-manager" :depends-on ("medium" "port" "package"))))))
388 thenriksen 1.66 #+clisp
389     (defmethod asdf::traverse :around ((op compile-op) (c (eql (find-system :clim-clx))))
390     ;; Just some random symbol I know is unexported in CLISP's CLX.
391     (if (eq (nth-value 1 (find-symbol "SET-SELECTION-OWNER" :xlib))
392     :external)
393     (call-next-method)
394     (restart-case (error "Your CLX is not capable of running the McCLIM CLX backend")
395     (load-clx-via-asdf ()
396     :report "Try replacing your CLX with a CLX loaded through ASDF, hopefully this will be Telent CLX."
397     (ext:without-package-lock ("XLIB")
398     (delete-package :xlib)
399     (asdf:oos 'asdf:load-op :clx))
400     (call-next-method)))))
401 afuchs 1.1
402 rschlatte 1.64 (defsystem :clim-beagle
403     :depends-on (clim)
404     :components
405     ((:module "Backends"
406     :components
407     ((:module "beagle"
408     :serial t
409     :components
410     ((:file "package")
411     (:module "native"
412     :components ((:file "lisp-bezier-path")
413     (:file "lisp-window")
414     (:file "lisp-window-delegate")
415     (:file "lisp-view"
416     :depends-on ("lisp-bezier-path"))
417     (:file "lisp-view-additional"
418     :depends-on ("lisp-view"))
419     (:file "lisp-scroller")
420     (:file "lisp-slider")
421     (:file "lisp-button")
422     (:file "lisp-image")))
423     (:file "cocoa-util")
424     (:module "windowing"
425     :depends-on ("native")
426     :components ((:file "port")
427     (:file "frame-manager")
428     (:file "mirror")
429     (:file "graft")))
430     (:module "native-panes"
431     :components ((:file "beagle-scroll-bar-pane")
432     (:file "beagle-slider-pane")
433     ;; Basic buttons - not collections of buttons
434     (:file "beagle-fundamental-button-pane")
435     ;; Button collections (radio + checkbox)
436     ;; (:file "beagle-button-collection-pane")
437     (:file "scroller-pane-fix")))
438     (:module "output"
439     :depends-on ("windowing")
440     :components ((:file "medium")
441     (:file "fonts")))
442     (:module "input"
443     :depends-on ("windowing")
444     :components ((:file "events")
445     (:file "keysymdef")))
446     (:module "glimpse"
447     :components ((:file "glimpse")
448     (:file "glimpse-support")
449     (:file "glimpse-command-tables")
450     (:file "glimpse-present-process"
451     :depends-on ("glimpse" "glimpse-support"))
452     (:file "glimpse-present-window"
453     :depends-on ("glimpse" "glimpse-support"))
454     (:file "glimpse-modeless-commands"
455     :depends-on ("glimpse" "glimpse-support"))
456     (:file "glimpse-process-commands"
457     :depends-on ("glimpse" "glimpse-support"))
458     (:file "glimpse-window-commands"
459     :depends-on ("glimpse" "glimpse-support"))))
460     (:module "profile"
461     :components ((:file "profile")))
462     (:module "tests"
463     :components ((:file "drawing-tests")
464     (:file "graft-tests"))))))))
465     )
466    
467 crhodes 1.15 (defsystem :clim-null
468     :depends-on (:clim)
469     :components
470     ((:module "Backends/Null"
471     :pathname #.(make-pathname :directory '(:relative "Backends" "Null"))
472     :components
473     ((:file "package")
474     (:file "port" :depends-on ("package"))
475     (:file "medium" :depends-on ("port" "package"))
476     (:file "graft" :depends-on ("port" "package"))
477     (:file "frame-manager" :depends-on ("medium" "port" "package"))))))
478    
479 dlichteblau 1.19 (defsystem :clim-gtkairo
480     :depends-on (:clim :cffi)
481     :components
482     ((:module "Backends/gtkairo"
483     :pathname #.(make-pathname :directory '(:relative "Backends" "gtkairo"))
484     :serial t ;asf wird's ja richten
485     :components
486     ((:file "clim-fix")
487     (:file "package")
488     (:file "gtk-ffi")
489     (:file "cairo-ffi")
490 dlichteblau 1.35 (:file "ffi")
491 dlichteblau 1.31 (:file "graft")
492 dlichteblau 1.19 (:file "port")
493     (:file "event")
494 dlichteblau 1.37 (:file "keys")
495 dlichteblau 1.44 (:file "medium")
496 dlichteblau 1.41 (:file "pango")
497 dlichteblau 1.44 (:file "cairo")
498 dlichteblau 1.43 (:file "gdk")
499 dlichteblau 1.19 (:file "pixmap")
500     (:file "frame-manager")
501     (:file "gadgets")))))
502    
503 dlichteblau 1.55 (defsystem :clim-graphic-forms
504     :depends-on (:clim :graphic-forms-uitoolkit)
505     :components
506     ((:module "Backends/Graphic-Forms"
507     :pathname #.(make-pathname :directory '(:relative "Backends" "Graphic-Forms"))
508     :components
509     ((:file "package")
510     (:file "utils" :depends-on ("package"))
511     (:file "graft" :depends-on ("package"))
512     (:file "port" :depends-on ("utils" "graft"))
513     (:file "medium" :depends-on ("port"))
514 junrue 1.61 (:file "pixmap" :depends-on ("medium"))
515 dlichteblau 1.55 (:file "frame-manager" :depends-on ("medium"))
516     (:file "gadgets" :depends-on ("port"))))))
517    
518 afuchs 1.1 ;;; TODO/asf: I don't have the required libs to get :clim-opengl to load. tough.
519     (clim-defsystem (:clim-opengl :depends-on (:clim))
520     "Backends/OpenGL/opengl-x-frame-manager"
521     "Backends/OpenGL/opengl-frame-manager"
522     "Backends/OpenGL/opengl-x-port-before"
523     "Backends/OpenGL/opengl-port"
524     "Backends/OpenGL/opengl-x-port-after"
525     "Backends/OpenGL/opengl-medium"
526     "Backends/OpenGL/opengl-x-graft")
527    
528     ;;; A system that loads the appropriate backend for the current
529     ;;; platform.
530     (defsystem :clim-looks
531 afuchs 1.12 :depends-on (:clim :clim-postscript
532 afuchs 1.1 ;; If we're on an implementation that ships CLX, use
533     ;; it. Same if the user has loaded CLX already.
534 dlichteblau 1.55 #+(and (or sbcl scl openmcl ecl clx allegro)
535 dlichteblau 1.68 (not (or clim-gtkairo clim-graphic-forms clim-beagle)))
536 dlichteblau 1.32 :clim-clx
537 dlichteblau 1.55 #+clim-graphic-forms :clim-graphic-forms
538 dlichteblau 1.68 #+clim-gl :clim-opengl
539 afuchs 1.1 ;; OpenMCL and MCL support the beagle backend (native
540     ;; OS X look&feel on OS X).
541 dlichteblau 1.67 #+clim-beagle :clim-beagle
542 crhodes 1.15
543 dlichteblau 1.68 #+clim-gtkairo :clim-gtkairo
544 dlichteblau 1.19
545 crhodes 1.15 ;; null backend
546     :clim-null
547 afuchs 1.1 )
548 dlichteblau 1.69 :components (#-(or clim-gtkairo clim-graphic-forms clim-beagle)
549 dlichteblau 1.32 (:file "Looks/pixie"
550 afuchs 1.1 :pathname #.(make-pathname :directory '(:relative "Looks") :name "pixie" :type "lisp"))))
551    
552 thenriksen 1.71 (defsystem :mcclim-images
553     :depends-on (:clim)
554     :components ((:module "Extensions/Images"
555     :pathname #.(make-pathname :directory '(:relative "Extensions" "Images"))
556     :components ((:file "package")
557 thenriksen 1.74 (:file "images" :depends-on ("package"))
558     (:file "image-viewer" :depends-on ("images"))))))
559 thenriksen 1.71
560     (defmacro support-format (format &rest depends-on)
561     "Generate the ASDF `defsystem' form for a single-file system
562     consisting of a file with the name `format' in
563     Extensions/Images. It will depend on the ASDF systems listed in
564     `depends-on' as well as MCCLIM-IMAGES."
565     `(defsystem ,(intern (format nil "MCCLIM-IMAGES-~A" (string-upcase format))
566     (find-package :keyword))
567     :depends-on (:mcclim-images ,@depends-on)
568     :components
569     ((:file ,format
570     :pathname ,(make-pathname :directory '(:relative "Extensions" "Images")
571     :name format)))))
572    
573     (defmacro support-formats (&rest formats)
574     "Generate the ASDF `defsystem' forms for supporting
575     `formats'."
576     `(progn ,@(loop for (format . depends-on) in formats
577     collecting `(support-format ,format ,@depends-on))))
578    
579 dlichteblau 1.72 (support-formats ("gif" :skippy) ("xpm") ("jpeg" :cl-jpeg))
580 thenriksen 1.71
581 ahefner 1.22 ;;; The actual McCLIM system that people should to use in their ASDF
582     ;;; package dependency lists.
583     (defsystem :mcclim
584 afuchs 1.60 :version "0.9.6-dev"
585 ahefner 1.22 :depends-on (:clim-looks))
586    
587 tmoore 1.8 (defmethod perform :after ((op load-op) (c (eql (find-system :clim))))
588     (pushnew :clim *features*)
589     (pushnew :mcclim *features*))
590    
591 afuchs 1.7 (defmethod perform :after ((op load-op) (c (eql (find-system :mcclim))))
592     (pushnew :clim *features*)
593 tmoore 1.8 (pushnew :mcclim *features*))
594 thenriksen 1.33
595     ;; XXX This is very ugly, but ESA and Drei need to know whether they
596     ;; are being compiled as part of McCLIM, or in another CLIM
597     ;; implementation.
598     (defmethod perform :around (op c)
599     (if (and (or (eql (component-system c) (find-system :esa-mcclim))
600     (eql (component-system c) (find-system :drei-mcclim)))
601     (not (find :building-mcclim *features*)))
602     (unwind-protect (progn (push :building-mcclim *features*)
603     (call-next-method))
604     (setf *features* (delete :building-mcclim *features*)))
605     (call-next-method)))

  ViewVC Help
Powered by ViewVC 1.1.5