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

Contents of /mcclim/mcclim.asd

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.27 - (hide annotations)
Wed Nov 1 13:02:29 2006 UTC (7 years, 5 months ago) by thenriksen
Branch: MAIN
Changes since 1.26: +2 -1 lines
Added the views.lisp example to the CLIM-EXAMPLES system definition.
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     ;;; Legacy CMUCL support stuff
36     #+cmu
37     (progn
38     (unless (fboundp 'ext:stream-read-char)
39     (unless (ignore-errors (ext:search-list "gray-streams:"))
40     (setf (ext:search-list "gray-streams:")
41     '("target:pcl/" "library:subsystems/")))
42 afuchs 1.4 (if (fboundp 'extensions:without-package-locks)
43     (extensions:without-package-locks
44 afuchs 1.1 (load "gray-streams:gray-streams-library"))
45     (load "gray-streams:gray-streams-library")))
46     #-clx
47     (require :clx)
48     #+mp (when (eq mp::*initial-process* mp::*current-process*)
49     (format t "~%~%You need to run (mp::startup-idle-and-top-level-loops) to start up the multiprocessing support.~%~%")))
50    
51 afuchs 1.5 ;;; Make CLX asdf-loadable on Allegro 6.2
52     ;;; possibly this should be further refined to funciton properly for
53     ;;; Allegro on Windows platforms. [2005/04/18:rpg]
54 tmoore 1.16
55 afuchs 1.5 #+allegro
56     (progn
57     (defclass requireable-system (asdf:system)
58 tmoore 1.16 ())
59 afuchs 1.5 (defmethod asdf:perform ((op asdf:load-op) (system requireable-system))
60 tmoore 1.11 (require (intern (slot-value system 'asdf::name) :keyword)))
61 afuchs 1.5 (defmethod asdf::traverse ((op asdf:load-op) (system requireable-system))
62     (list (cons op system)))
63     (defsystem :clx
64     :class requireable-system))
65    
66 afuchs 1.1 (defmacro clim-defsystem ((module &key depends-on) &rest components)
67     `(progn
68     (asdf:defsystem ,module
69     ,@(and depends-on
70     `(:depends-on ,depends-on))
71     :serial t
72     :components
73     (,@(loop for c in components
74     for p = (merge-pathnames
75     (parse-namestring c)
76     (make-pathname :type "lisp"
77     :defaults *clim-directory*))
78 crhodes 1.6 collect `(:file ,(namestring p) :pathname ,p))))))
79 afuchs 1.1
80     (defsystem :clim-lisp
81     :components
82     (;; First possible patches
83     (:file "patch")
84     (:module "Lisp-Dep"
85     :depends-on ("patch")
86     :components
87     ((:file #+cmu "fix-cmu"
88 tmoore 1.10 #+scl "fix-scl"
89 afuchs 1.1 #+excl "fix-acl"
90     #+sbcl "fix-sbcl"
91     #+openmcl "fix-openmcl"
92     #+lispworks "fix-lispworks"
93     #+clisp "fix-clisp")))
94 afuchs 1.25 (:file "package" :depends-on ("Lisp-Dep" "patch"))))
95 afuchs 1.1
96     (defsystem :clim-core
97 afuchs 1.7 :depends-on (:clim-lisp :spatial-trees)
98 afuchs 1.1 :components ((:file "decls")
99 tmoore 1.8 (:file "protocol-classes" :depends-on ("decls"))
100 afuchs 1.1 (:module "Lisp-Dep"
101     :depends-on ("decls")
102     :components
103 afuchs 1.26 ((:file #.(first
104     (list
105     #+(and :cmu :mp (not :pthread)) "mp-cmu"
106     #+scl "mp-scl"
107     #+sb-thread "mp-sbcl"
108     #+excl "mp-acl"
109     #+openmcl "mp-openmcl"
110     #+lispworks "mp-lw"
111     #| fall back |# "mp-nil")))))
112 afuchs 1.1 (:file "utils" :depends-on ("decls" "Lisp-Dep"))
113 tmoore 1.8 (:file "design" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "utils"))
114     (:file "X11-colors" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "design"))
115     (:file "coordinates" :depends-on ("decls" "protocol-classes" "Lisp-Dep"))
116 afuchs 1.1 (:file "setf-star" :depends-on ("decls" "Lisp-Dep"))
117 tmoore 1.8 (:file "transforms" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "coordinates" "utils"))
118     (:file "regions" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "coordinates" "utils" "transforms" "setf-star" "design"))
119     (:file "sheets" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "utils" "transforms" "regions"))
120     (:file "pixmap" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "sheets" "transforms" "regions"))
121     (:file "events" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "transforms" "sheets" "utils"))
122     (:file "ports" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "events" "sheets" "pixmap" "utils"))
123     (:file "grafts" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "sheets" "ports" "transforms" "regions"))
124     (:file "medium" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "ports" "X11-colors" "utils" "pixmap" "regions"
125 afuchs 1.1 "transforms" "design"))
126 tmoore 1.8 (:file "output" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "medium"))
127     (:file "input" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "events" "regions" "sheets"))
128     (:file "repaint" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "sheets" "events"))
129     (:file "graphics" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "output" "utils" "medium" "sheets" "pixmap"
130 afuchs 1.1 "regions" "design" "transforms"))
131 tmoore 1.8 (:file "views" :depends-on ("utils" "protocol-classes"))
132     (:file "stream-output" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "design" "utils" "X11-colors" "views"
133 afuchs 1.1 "output" "sheets" "regions" "graphics"
134     "medium" "setf-star"))
135 tmoore 1.8 (:file "recording" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "output" "coordinates" "graphics" "design"
136 afuchs 1.1 "medium" "transforms" "regions" "sheets"
137     "utils" "stream-output"))
138 tmoore 1.8 (:file "encapsulate" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "sheets" "graphics" "utils" "medium" "input"
139 afuchs 1.1 "stream-output" "recording"))
140 tmoore 1.8 (:file "stream-input" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "input" "ports" "sheets" "events"
141 afuchs 1.1 "encapsulate" "transforms" "utils"))
142 tmoore 1.8 (:file "text-selection" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "X11-colors" "medium" "output"
143 afuchs 1.1 "transforms" "sheets" "stream-output"
144     "ports" "recording" "regions"
145     "events"))))
146    
147     (defsystem :goatee-core
148     :depends-on (:clim-core)
149     :components
150     ((:module "Goatee"
151     :components
152     ((:file "conditions")
153     (:file "dbl-list")
154     (:file "flexivector" :depends-on ("conditions" "dbl-list"))
155     (:file "buffer" :depends-on ("conditions" "flexivector" "dbl-list"))
156     (:file "editable-buffer" :depends-on ("dbl-list" "flexivector" "buffer"))
157     (:file "editable-area" :depends-on ("flexivector" "editable-buffer" "dbl-list"
158     "buffer"))
159     (:file "clim-area" :depends-on ("flexivector" "dbl-list" "buffer"
160     "editable-area" "editable-buffer"))
161     (:file "kill-ring" :depends-on ("editable-buffer" "dbl-list" "flexivector"
162     "buffer"))
163     (:file "goatee-command" :depends-on ("conditions" "clim-area" "dbl-list"
164     "editable-buffer" "kill-ring"
165     "editable-area" "buffer" "flexivector"))
166     (:file "editing-stream" :depends-on ("goatee-command" "kill-ring" "dbl-list"
167     "conditions" "editable-buffer"
168     "flexivector" "clim-area" "buffer"))
169     (:file "presentation-history" :depends-on ("editing-stream" "buffer"
170     "flexivector" "editable-buffer"
171     "goatee-command"))))))
172    
173     ;;; CLIM-PostScript is not a backend in the normal sense.
174     ;;; It is an extension (Chap. 35.1 of the spec) and is an
175     ;;; "included" part of McCLIM. Hence the defsystem is here.
176     (defsystem :clim-postscript
177     :depends-on (:clim-core)
178     :components
179     ((:module "Backends/PostScript"
180     :pathname #.(make-pathname :directory '(:relative "Backends" "PostScript"))
181     :components
182     ((:file "package")
183     (:file "encoding" :depends-on ("package"))
184     (:file "paper" :depends-on ("package"))
185     (:file "class" :depends-on ("paper" "package"))
186     (:file "font" :depends-on ("encoding" "class" "paper" "package"))
187     (:file "graphics" :depends-on ("encoding" "paper" "class" "font" "package"))
188     (:file "sheet" :depends-on ("paper" "class" "graphics" "package"))
189     (:file "afm" :depends-on ("class" "paper" "font" "package"))
190     (:file "standard-metrics" :depends-on ("font" "package"))))))
191    
192     (defsystem :clim
193 afuchs 1.12 :depends-on (:clim-core :goatee-core)
194 afuchs 1.1 :components
195     ((:file "text-formatting")
196     (:file "input-editing")
197     (:file "presentations")
198 afuchs 1.3 (:file "defresource")
199 afuchs 1.1 (:file "presentation-defs" :depends-on ("input-editing" "presentations"))
200     (:file "pointer-tracking" :depends-on ("input-editing"))
201 tmoore 1.8 (:file "commands" :depends-on ("input-editing" "presentations"
202     "presentation-defs"))
203     (:file "incremental-redisplay" :depends-on ("presentation-defs"))
204 afuchs 1.1 (:file "frames" :depends-on ("commands" "presentations" "presentation-defs"
205 tmoore 1.8 "pointer-tracking" "incremental-redisplay"))
206 afuchs 1.1 (:file "panes" :depends-on ("incremental-redisplay" "presentations"
207     "presentation-defs" "input-editing" "frames"))
208     (:file "gadgets" :depends-on ("commands" "pointer-tracking" "input-editing"
209     "frames" "incremental-redisplay" "panes"))
210     (:file "menu" :depends-on ("panes" "commands" "gadgets"
211     "presentations" "frames"))
212     (:file "table-formatting" :depends-on ("presentation-defs" "panes"
213     "presentations" "input-editing"))
214     (:file "graph-formatting")
215     (:file "bordered-output" :depends-on ("input-editing" "incremental-redisplay"
216     "presentation-defs" "panes"))
217     (:file "dialog-views" :depends-on ("presentations" "incremental-redisplay"
218     "bordered-output" "presentation-defs"))
219     (:file "dialog" :depends-on ("panes" "frames" "incremental-redisplay"
220     "table-formatting" "presentations"
221     "bordered-output" "presentation-defs"
222     "dialog-views" "input-editing"
223     "commands"))
224     (:file "builtin-commands" :depends-on ("table-formatting" "commands" "presentations"
225     "presentation-defs" "input-editing"))
226     (:file "describe" :depends-on ("presentations" "presentation-defs" "table-formatting"))
227 tmoore 1.8 (:file "menu-choose" :depends-on ("commands" "table-formatting" "presentation-defs"
228     "panes" "frames" "pointer-tracking"
229     "presentations"))
230 afuchs 1.1 (:file "Goatee/presentation-history" :depends-on ("presentation-defs") ; XXX: this is loaded as part of the Goatee system. huh?
231     :pathname #.(make-pathname :directory '(:relative "Goatee") :name "presentation-history" :type "lisp"))
232     ))
233    
234     (defsystem :clim-clx
235 afuchs 1.5 :depends-on (:clim #+(or sbcl openmcl ecl allegro) :clx)
236 afuchs 1.1 :components
237     ((:module "Backends/CLX"
238     :pathname #.(make-pathname :directory '(:relative "Backends" "CLX"))
239     :components
240     ((:file "package")
241 afuchs 1.2 (:file "image" :depends-on ("package"))
242 afuchs 1.1 (:file "keysyms-common" :depends-on ("package"))
243     (:file "keysyms" :depends-on ("keysyms-common" "package"))
244     (:file "keysymdef" :depends-on ("keysyms-common" "package"))
245     (:file "port" :depends-on ("keysyms-common" "keysyms" "package"))
246     (:file "medium" :depends-on ("port" "keysyms" "package"))
247     (:file "graft" :depends-on ("port" "package"))
248     (:file "frame-manager" :depends-on ("medium" "port" "package"))))))
249    
250 crhodes 1.15 (defsystem :clim-null
251     :depends-on (:clim)
252     :components
253     ((:module "Backends/Null"
254     :pathname #.(make-pathname :directory '(:relative "Backends" "Null"))
255     :components
256     ((:file "package")
257     (:file "port" :depends-on ("package"))
258     (:file "medium" :depends-on ("port" "package"))
259     (:file "graft" :depends-on ("port" "package"))
260     (:file "frame-manager" :depends-on ("medium" "port" "package"))))))
261    
262 dlichteblau 1.19 (defsystem :clim-gtkairo
263     :depends-on (:clim :cffi)
264     :components
265     ((:module "Backends/gtkairo"
266     :pathname #.(make-pathname :directory '(:relative "Backends" "gtkairo"))
267     :serial t ;asf wird's ja richten
268     :components
269     ((:file "clim-fix")
270     (:file "package")
271     (:file "gtk-ffi")
272     (:file "cairo-ffi")
273     (:file "port")
274     (:file "event")
275     (:file "keysymdef")
276     (:file "medium")
277     (:file "pixmap")
278     (:file "graft")
279     (:file "frame-manager")
280     (:file "gadgets")))))
281    
282 afuchs 1.1 ;;; TODO/asf: I don't have the required libs to get :clim-opengl to load. tough.
283     (clim-defsystem (:clim-opengl :depends-on (:clim))
284     "Backends/OpenGL/opengl-x-frame-manager"
285     "Backends/OpenGL/opengl-frame-manager"
286     "Backends/OpenGL/opengl-x-port-before"
287     "Backends/OpenGL/opengl-port"
288     "Backends/OpenGL/opengl-x-port-after"
289     "Backends/OpenGL/opengl-medium"
290     "Backends/OpenGL/opengl-x-graft")
291    
292     ;;; A system that loads the appropriate backend for the current
293     ;;; platform.
294     (defsystem :clim-looks
295 afuchs 1.12 :depends-on (:clim :clim-postscript
296 afuchs 1.1 ;; If we're on an implementation that ships CLX, use
297     ;; it. Same if the user has loaded CLX already.
298 tmoore 1.10 #+(or sbcl scl openmcl ecl clx allegro) :clim-clx
299 afuchs 1.1 #+gl :clim-opengl
300     ;; OpenMCL and MCL support the beagle backend (native
301     ;; OS X look&feel on OS X).
302    
303     ;; But until it's ready, it's no use forcing users to
304     ;; cope with possible bugs.
305     ;; #+(or openmcl mcl) :clim-beagle
306 crhodes 1.15
307 dlichteblau 1.19 #+gtkairo :clim-gtkairo
308    
309 crhodes 1.15 ;; null backend
310     :clim-null
311 afuchs 1.1 )
312     :components ((:file "Looks/pixie"
313     :pathname #.(make-pathname :directory '(:relative "Looks") :name "pixie" :type "lisp"))))
314    
315     ;;; name of :clim-clx-user chosen by mikemac for no good reason
316     (defsystem :clim-clx-user
317     :depends-on (:clim :clim-clx))
318    
319 ahefner 1.22 ;;; The actual McCLIM system that people should to use in their ASDF
320     ;;; package dependency lists.
321     (defsystem :mcclim
322     :depends-on (:clim-looks))
323    
324 afuchs 1.1 ;;; CLIM-Examples depends on having at least one backend loaded.
325     (defsystem :clim-examples
326 ahefner 1.22 :depends-on (:mcclim)
327 afuchs 1.1 :components
328     ((:module "Examples"
329     :components
330     ((:file "calculator")
331     (:file "colorslider")
332 varkesteijn 1.14 (:file "menutest") ; extra
333 afuchs 1.1 (:file "address-book")
334     (:file "traffic-lights")
335     (:file "clim-fig")
336     (:file "postscript-test")
337 varkesteijn 1.14 (:file "puzzle")
338     (:file "transformations-test")
339     (:file "demodemo")
340 afuchs 1.1 (:file "stream-test")
341     (:file "presentation-test")
342 varkesteijn 1.14 (:file "dragndrop")
343 dlichteblau 1.20 (:file "gadget-test")
344 afuchs 1.1 (:file "accepting-values")
345 tmoore 1.9 (:file "method-browser")
346 afuchs 1.24 (:file "stopwatch")
347 crhodes 1.17 (:file "dragndrop-translator")
348 dlichteblau 1.18 (:file "draggable-graph")
349 dlichteblau 1.21 (:file "text-size-test")
350 ahefner 1.23 (:file "drawing-benchmark")
351 thenriksen 1.27 (:file "logic-cube")
352     (:file "views")))
353 varkesteijn 1.14 (:module "Goatee"
354     :components
355     ((:file "goatee-test")))))
356 afuchs 1.1
357     ;;; This won't load in SBCL, either. I have really crappy code to
358     ;;; extract dependency information from :serial t ASDF systems, but
359     ;;; this comment is too narrow to contain it.
360 ahefner 1.22 (clim-defsystem (:scigraph :depends-on (:mcclim))
361 afuchs 1.1 ;; The DWIM part of SCIGRAPH
362     "Apps/Scigraph/dwim/package"
363     "Apps/Scigraph/dwim/feature-case"
364     "Apps/Scigraph/dwim/macros"
365     "Apps/Scigraph/dwim/tv"
366     "Apps/Scigraph/dwim/draw"
367     "Apps/Scigraph/dwim/present"
368     "Apps/Scigraph/dwim/extensions"
369     "Apps/Scigraph/dwim/wholine"
370     "Apps/Scigraph/dwim/export"
371     ;; The Scigraph part
372     "Apps/Scigraph/scigraph/package"
373     "Apps/Scigraph/scigraph/copy"
374     "Apps/Scigraph/scigraph/dump"
375     "Apps/Scigraph/scigraph/duplicate"
376     "Apps/Scigraph/scigraph/random"
377     "Apps/Scigraph/scigraph/menu-tools"
378     "Apps/Scigraph/scigraph/basic-classes"
379     "Apps/Scigraph/scigraph/draw"
380     "Apps/Scigraph/scigraph/mouse"
381     "Apps/Scigraph/scigraph/color"
382     "Apps/Scigraph/scigraph/basic-graph"
383     "Apps/Scigraph/scigraph/graph-mixins"
384     "Apps/Scigraph/scigraph/axis"
385     "Apps/Scigraph/scigraph/moving-object"
386     "Apps/Scigraph/scigraph/symbol"
387     "Apps/Scigraph/scigraph/graph-data"
388     "Apps/Scigraph/scigraph/legend"
389     "Apps/Scigraph/scigraph/graph-classes"
390     "Apps/Scigraph/scigraph/present"
391     "Apps/Scigraph/scigraph/annotations"
392     "Apps/Scigraph/scigraph/annotated-graph"
393     "Apps/Scigraph/scigraph/contour"
394     "Apps/Scigraph/scigraph/equation"
395     "Apps/Scigraph/scigraph/popup-accept"
396     "Apps/Scigraph/scigraph/popup-accept-methods"
397     "Apps/Scigraph/scigraph/duplicate-methods"
398     "Apps/Scigraph/scigraph/frame"
399     "Apps/Scigraph/scigraph/export"
400     "Apps/Scigraph/scigraph/demo-frame")
401    
402     (defsystem :clim-listener
403 ahefner 1.22 :depends-on (:mcclim #+sbcl :sb-posix)
404 afuchs 1.1 :components
405     ((:file "Experimental/xpm"
406     :pathname #.(make-pathname :directory '(:relative "Experimental") :name "xpm" :type "lisp"))
407     (:module "Apps/Listener"
408     :pathname #.(make-pathname :directory '(:relative "Apps" "Listener"))
409     :depends-on ("Experimental/xpm")
410     :components
411     ((:file "package")
412     (:file "util" :depends-on ("package"))
413     (:file "icons" :depends-on ("package" "util"))
414     (:file "file-types" :depends-on ("package" "icons" "util"))
415     (:file "dev-commands" :depends-on ("package" "icons" "file-types" "util"))
416     (:file "listener" :depends-on ("package" "file-types" "icons" "dev-commands" "util"))
417     #+CMU (:file "cmu-hacks" :depends-on ("package"))))))
418    
419 ahefner 1.22 (defsystem :clouseau
420     :depends-on (:mcclim)
421     :serial t
422     :components
423 afuchs 1.24 ((:module "Apps/Inspector"
424     :pathname #.(make-pathname :directory '(:relative "Apps" "Inspector"))
425     :components
426     ((:file "package")
427     (:file "disassembly")
428     (:file "inspector")))))
429 afuchs 1.7
430 tmoore 1.8 (defmethod perform :after ((op load-op) (c (eql (find-system :clim))))
431     (pushnew :clim *features*)
432     (pushnew :mcclim *features*))
433    
434 afuchs 1.7 (defmethod perform :after ((op load-op) (c (eql (find-system :mcclim))))
435     (pushnew :clim *features*)
436 tmoore 1.8 (pushnew :mcclim *features*))

  ViewVC Help
Powered by ViewVC 1.1.5