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

Contents of /mcclim/mcclim.asd

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.84 - (show annotations)
Fri May 16 14:05:07 2008 UTC (5 years, 11 months ago) by rschlatte
Branch: MAIN
Changes since 1.83: +3 -5 lines
    Try to make beagle backend run both on 64-bit and 32-bit clozure cl
      * Only tested on 64-bit clozure cl 1.2rc1
      * hacked until clim-listener runs; chances are I missed many 'short-floats
      * Also don't (re)define symbols in the ccl package
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 ;;; Andreas Fuchs (asf@boinkor.net)
8 ;;;
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 (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 (find-swank-system)))
44 (defun dep-on-swank ()
45 (if (and (find-swank-system)
46 (not (find-package :swank)))
47 '(:and)
48 '(:or)))
49 (defun ifswank ()
50 (if (find-swank)
51 '(:and)
52 '(:or))))
53
54 ;;; 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 (if (fboundp 'extensions:without-package-locks)
62 (extensions:without-package-locks
63 (load "gray-streams:gray-streams-library"))
64 (load "gray-streams:gray-streams-library")))
65 #-(or clx clim-gtkairo clim-graphic-forms)
66 (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 ;;; 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
74 #+allegro
75 (progn
76 (defclass requireable-system (asdf:system)
77 ())
78 (defmethod asdf:perform ((op asdf:load-op) (system requireable-system))
79 (require (intern (slot-value system 'asdf::name) :keyword)))
80 (defmethod asdf::traverse ((op asdf:load-op) (system requireable-system))
81 (list (cons op system)))
82 (defsystem :clx
83 :class requireable-system))
84
85 ;;; Clozure CL native GUI stuff
86 #+clim-beagle
87 (require :cocoa)
88
89 (defmacro clim-defsystem ((module &key depends-on) &rest components)
90 `(progn
91 (asdf:defsystem ,module
92 ,@(and depends-on
93 `(:depends-on ,depends-on))
94 :serial t
95 :components
96 (,@(loop for c in components
97 for p = (merge-pathnames
98 (parse-namestring c)
99 (make-pathname :type "lisp"
100 :defaults *clim-directory*))
101 collect `(:file ,(namestring p) :pathname ,p))))))
102
103 (defsystem :clim-lisp
104 :components
105 (;; First possible patches
106 (:file "patch")
107 (:module "Lisp-Dep"
108 :depends-on ("patch")
109 :components
110 ((:file #+cmu "fix-cmu"
111 #+scl "fix-scl"
112 #+excl "fix-acl"
113 #+sbcl "fix-sbcl"
114 #+openmcl "fix-openmcl"
115 #+lispworks "fix-lispworks"
116 #+clisp "fix-clisp")))
117 (:file "package" :depends-on ("Lisp-Dep" "patch"))))
118
119 (defsystem :clim-basic
120 :depends-on (:clim-lisp :spatial-trees (:version "flexichain" "1.5.1"))
121 :components ((:file "decls")
122 (:file "protocol-classes" :depends-on ("decls"))
123 (:module "Lisp-Dep"
124 :depends-on ("decls")
125 :components
126 ((:file #.(first
127 (list
128 #+(and :cmu :mp (not :pthread)) "mp-cmu"
129 #+scl "mp-scl"
130 #+sb-thread "mp-sbcl"
131 #+excl "mp-acl"
132 #+openmcl "mp-openmcl"
133 #+lispworks "mp-lw"
134 #| fall back |# "mp-nil")))))
135 (:file "utils" :depends-on ("decls" "Lisp-Dep"))
136 (:file "design" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "utils"))
137 (:file "X11-colors" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "design"))
138 (:file "coordinates" :depends-on ("decls" "protocol-classes" "Lisp-Dep"))
139 (:file "setf-star" :depends-on ("decls" "Lisp-Dep"))
140 (:file "transforms" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "coordinates" "utils"))
141 (:file "dead-keys" :depends-on ("decls"))
142 (:file "regions" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "coordinates" "utils" "transforms" "setf-star" "design"))
143 (:file "sheets" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "utils" "transforms" "regions"))
144 (:file "pixmap" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "sheets" "transforms" "regions"))
145 (:file "events" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "transforms" "sheets" "utils"))
146 (:file "ports" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "events" "sheets" "pixmap" "utils"))
147 (:file "grafts" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "sheets" "ports" "transforms" "regions"))
148 (:file "medium" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "ports" "X11-colors" "utils" "pixmap" "regions"
149 "transforms" "design"))
150 (:file "output" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "medium"))
151 (:file "input" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "events" "regions" "sheets"))
152 (:file "repaint" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "sheets" "events"))
153 (:file "graphics" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "output" "utils" "medium" "sheets" "pixmap"
154 "regions" "design" "transforms"))
155 (:file "views" :depends-on ("utils" "protocol-classes"))
156 (:file "stream-output" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "design" "utils" "X11-colors" "views"
157 "output" "sheets" "regions" "graphics"
158 "medium" "setf-star"))
159 (:file "recording" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "output" "coordinates" "graphics" "design"
160 "medium" "transforms" "regions" "sheets"
161 "utils" "stream-output"))
162 (:file "encapsulate" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "sheets" "graphics" "utils" "medium" "input"
163 "stream-output" "recording"))
164 (:file "stream-input" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "input" "ports" "sheets" "events"
165 "encapsulate" "transforms" "utils" "dead-keys"))
166 (:file "text-selection" :depends-on ("decls" "protocol-classes" "Lisp-Dep" "X11-colors" "medium" "output"
167 "transforms" "sheets" "stream-output"
168 "ports" "recording" "regions"
169 "events"))
170 (:file "bezier" :depends-on ("recording"))))
171
172 (defsystem :goatee-core
173 :depends-on (:clim-basic)
174 :components
175 ((:module "Goatee"
176 :components
177 ((:file "conditions")
178 (:file "dbl-list")
179 (:file "flexivector" :depends-on ("conditions" "dbl-list"))
180 (:file "buffer" :depends-on ("conditions" "flexivector" "dbl-list"))
181 (:file "editable-buffer" :depends-on ("dbl-list" "flexivector" "buffer"))
182 (:file "editable-area" :depends-on ("flexivector" "editable-buffer" "dbl-list"
183 "buffer"))
184 (:file "clim-area" :depends-on ("flexivector" "dbl-list" "buffer"
185 "editable-area" "editable-buffer"))
186 (:file "kill-ring" :depends-on ("editable-buffer" "dbl-list" "flexivector"
187 "buffer"))
188 (:file "goatee-command" :depends-on ("conditions" "clim-area" "dbl-list"
189 "editable-buffer" "kill-ring"
190 "editable-area" "buffer" "flexivector"))
191 (:file "editing-stream" :depends-on ("goatee-command" "kill-ring" "dbl-list"
192 "conditions" "editable-buffer"
193 "flexivector" "clim-area" "buffer"))
194 (:file "presentation-history" :depends-on ("editing-stream" "buffer"
195 "flexivector" "editable-buffer"
196 "goatee-command"))))))
197 ;;; CLIM-PostScript is not a backend in the normal sense.
198 ;;; It is an extension (Chap. 35.1 of the spec) and is an
199 ;;; "included" part of McCLIM. Hence the defsystem is here.
200 (defsystem :clim-postscript
201 :depends-on (:clim-basic)
202 :components
203 ((:module "Backends/PostScript"
204 :pathname #.(make-pathname :directory '(:relative "Backends" "PostScript"))
205 :components
206 ((:file "package")
207 (:file "encoding" :depends-on ("package"))
208 (:file "paper" :depends-on ("package"))
209 (:file "class" :depends-on ("paper" "package"))
210 (:file "font" :depends-on ("encoding" "class" "paper" "package"))
211 (:file "graphics" :depends-on ("encoding" "paper" "class" "font" "package"))
212 (:file "sheet" :depends-on ("paper" "class" "graphics" "package"))
213 (:file "afm" :depends-on ("class" "paper" "font" "package"))
214 (:file "standard-metrics" :depends-on ("font" "package"))))))
215
216 (defsystem :clim-core
217 :depends-on (:clim-basic :goatee-core :clim-postscript)
218 :components ((:file "text-formatting")
219 (:file "defresource")
220 (:file "presentations")
221 (:file "xpm")
222 (:file "bordered-output" :depends-on ("presentations"))
223 (:file "table-formatting" :depends-on ("presentations"))
224 (:file "input-editing" :depends-on ("presentations" "bordered-output" "table-formatting"))
225 (:file "pointer-tracking" :depends-on ("input-editing"))
226 (:file "graph-formatting")
227 (:file "frames" :depends-on ("commands" "presentations" "presentation-defs"
228 "pointer-tracking" "incremental-redisplay"))
229 (:file "dialog-views" :depends-on ("presentations" "incremental-redisplay"
230 "bordered-output" "presentation-defs"))
231 (:file "presentation-defs" :depends-on ("input-editing" "presentations"))
232 (:file "gadgets" :depends-on ("commands" "pointer-tracking" "input-editing"
233 "frames" "incremental-redisplay" "panes"))
234 (:file "describe" :depends-on ("presentations" "presentation-defs" "table-formatting"))
235 (:file "commands" :depends-on ("input-editing" "presentations"
236 "presentation-defs"))
237 (:file "incremental-redisplay" :depends-on ("presentation-defs"))
238 (:file "menu-choose" :depends-on ("commands" "table-formatting" "presentation-defs"
239 "panes" "frames" "pointer-tracking"
240 "presentations"))
241 (:file "menu" :depends-on ("panes" "commands" "gadgets"
242 "presentations" "frames"))
243 (:file "panes" :depends-on ("incremental-redisplay" "presentations"
244 "presentation-defs" "input-editing" "frames"))
245 (:file "dialog" :depends-on ("panes" "frames" "incremental-redisplay"
246 "table-formatting" "presentations"
247 "bordered-output" "presentation-defs"
248 "dialog-views" "input-editing"
249 "commands"))
250 (:file "builtin-commands" :depends-on ("table-formatting"
251 "commands" "presentations"
252 "dialog" "presentation-defs"
253 "input-editing"))))
254
255 (defsystem :esa-mcclim
256 :depends-on (:clim-core)
257 :components ((:module "ESA"
258 :components ((:file "packages")
259 (:file "utils" :depends-on ("packages"))
260 (:file "colors" :depends-on ("packages"))
261 (:file "esa" :depends-on ("colors" "packages" "utils"))
262 (:file "esa-buffer" :depends-on ("packages" "esa"))
263 (:file "esa-io" :depends-on ("packages" "esa" "esa-buffer"))
264 (:file "esa-command-parser" :depends-on ("packages" "esa"))))))
265
266
267
268 (defsystem :drei-mcclim
269 :depends-on ((:version "flexichain" "1.5.1") :esa-mcclim :clim-core #+#.(mcclim.system::dep-on-swank) :swank)
270 :components
271 ((:module "cl-automaton"
272 :pathname #.(make-pathname :directory '(:relative "Drei" "cl-automaton"))
273 :components ((:file "automaton-package")
274 (:file "eqv-hash" :depends-on ("automaton-package"))
275 (:file "state-and-transition" :depends-on ("eqv-hash"))
276 (:file "automaton" :depends-on ("state-and-transition" "eqv-hash"))
277 (:file "regexp" :depends-on ("automaton"))))
278 (:module "Persistent"
279 :pathname #.(make-pathname :directory '(:relative "Drei" "Persistent"))
280 :components ((:file "binseq-package")
281 (:file "binseq" :depends-on ("binseq-package"))
282 (:file "obinseq" :depends-on ("binseq-package" "binseq"))
283 (:file "binseq2" :depends-on ("binseq-package" "obinseq" "binseq"))))
284 (:module "Drei" :depends-on ("cl-automaton" "Persistent")
285 :components ((:file "packages")
286 (:file "buffer" :depends-on ("packages"))
287 (:file "delegating-buffer" :depends-on ("packages" "buffer"))
288 (:file "motion" :depends-on ("packages" "buffer" "syntax"))
289 (:file "editing" :depends-on ("packages" "buffer" "syntax" "motion" "kill-ring"))
290 (:file "base" :depends-on ("packages" "buffer" "persistent-buffer" "kill-ring"
291 "delegating-buffer"))
292 (:file "syntax" :depends-on ("packages" "buffer" "base"))
293 (:file "modes" :depends-on ("packages" "syntax"))
294 (:file "views" :depends-on ("packages" "buffer" "base" "syntax" "persistent-undo"
295 "persistent-buffer" "undo" "abbrev"
296 "delegating-buffer" "modes"))
297 (:file "drei" :depends-on ("packages" "views" "motion" "editing"))
298 (:file "drei-clim" :depends-on ("drei"))
299 (:file "drei-redisplay" :depends-on ("drei-clim"))
300 (:file "drawing-options" :depends-on ("drei-redisplay"))
301 (:file "input-editor" :depends-on ("drei-redisplay" "lisp-syntax" "core"))
302 (:file "abbrev" :depends-on ("packages"))
303 (:file "kill-ring" :depends-on ("packages"))
304 (:file "undo" :depends-on ("packages"))
305 (:file "basic-commands" :depends-on ("drei-clim" "motion" "editing"))
306 (:file "core" :depends-on ("drei"))
307 (:file "fundamental-syntax" :depends-on ("packages" "drei-redisplay" "core"))
308 (:file "buffer-streams" :depends-on ("core"))
309 (:file "rectangle" :depends-on ("core"))
310 (:file "targets" :depends-on ("core"))
311 (:file "core-commands" :depends-on ("core" "rectangle" "drei-clim"))
312 (:file "persistent-buffer"
313 :pathname #.(make-pathname :directory '(:relative "Persistent")
314 :name "persistent-buffer"
315 :type "lisp")
316 :depends-on ("packages"))
317 (:file "persistent-undo"
318 :pathname #p"Persistent/persistent-undo.lisp"
319 :depends-on ("packages" "buffer" "persistent-buffer" "undo"))
320 (:file "misc-commands" :depends-on ("basic-commands"))
321 (:file "search-commands" :depends-on ("core" "targets" "drei-clim"))
322 (:file "lr-syntax" :depends-on ("fundamental-syntax" "core" "drawing-options"))
323 (:file "lisp-syntax" :depends-on ("lr-syntax" "motion" "core"))
324 (:file "lisp-syntax-swine" :depends-on ("lisp-syntax"))
325 (:file "lisp-syntax-commands" :depends-on ("lisp-syntax-swine" "misc-commands"))
326 #+#.(mcclim.system::ifswank) (:file "lisp-syntax-swank" :depends-on ("lisp-syntax"))))))
327
328 (defsystem :drei-tests
329 :depends-on (:drei-mcclim :fiveam)
330 :components
331 ((:module "Tests"
332 :pathname #.(make-pathname :directory '(:relative "Drei" "Tests"))
333 :components
334 ((:module
335 "cl-automaton"
336 :depends-on ("testing")
337 :components
338 ((:file "automaton-tests")
339 (:file "state-and-transition-tests" :depends-on ("automaton-tests"))
340 (:file "eqv-hash-tests" :depends-on ("automaton-tests"))
341 (:file "regexp-tests" :depends-on ("automaton-tests"))))
342 (:file "packages")
343 (:file "testing" :depends-on ("packages"))
344 (:file "buffer-tests" :depends-on ("testing"))
345 (:file "base-tests" :depends-on ("testing"))
346 (:file "kill-ring-tests" :depends-on ("testing"))
347 (:file "motion-tests" :depends-on ("testing"))
348 (:file "editing-tests" :depends-on ("testing"))
349 (:file "core-tests" :depends-on ("testing"))
350 (:file "buffer-streams-tests" :depends-on ("testing"))
351 (:file "rectangle-tests" :depends-on ("testing"))
352 (:file "undo-tests" :depends-on ("testing"))
353 (:file "lisp-syntax-tests" :depends-on ("testing" "motion-tests"))
354 (:file "lisp-syntax-swine-tests" :depends-on ("lisp-syntax-tests"))))))
355
356 (defsystem :clim
357 :depends-on (:clim-core :goatee-core :clim-postscript :drei-mcclim)
358 :components
359 ((:file "Goatee/presentation-history" ; XXX: this is loaded as part of the Goatee system. huh?
360 :pathname #.(make-pathname :directory '(:relative "Goatee") :name "presentation-history" :type "lisp"))
361 (:file "input-editing-goatee")
362 (:file "input-editing-drei")
363 (:file "text-editor-gadget")
364 (:file "Extensions/tab-layout"
365 :pathname #.(make-pathname :directory '(:relative "Extensions")
366 :name "tab-layout"))))
367
368 (defsystem :clim-clx
369 :depends-on (:clim #+(or sbcl openmcl ecl allegro) :clx)
370 :components
371 ((:module "Backends/CLX"
372 :pathname #.(make-pathname :directory '(:relative "Backends" "CLX"))
373 :components
374 ((:file "package")
375 (:file "image" :depends-on ("package"))
376 (:file "keysyms-common" :depends-on ("package"))
377 (:file "keysyms" :depends-on ("keysyms-common" "package"))
378 (:file "keysymdef" :depends-on ("keysyms-common" "package"))
379 (:file "port" :depends-on ("keysyms-common" "keysyms" "package"))
380 (:file "medium" :depends-on ("port" "keysyms" "package"))
381 (:file "graft" :depends-on ("port" "package"))
382 (:file "frame-manager" :depends-on ("medium" "port" "package"))))))
383 #+clisp
384 (defmethod asdf::traverse :around ((op compile-op) (c (eql (find-system :clim-clx))))
385 ;; Just some random symbol I know is unexported in CLISP's CLX.
386 (if (eq (nth-value 1 (find-symbol "SET-SELECTION-OWNER" :xlib))
387 :external)
388 (call-next-method)
389 (restart-case (error "Your CLX is not capable of running the McCLIM CLX backend")
390 (load-clx-via-asdf ()
391 :report "Try replacing your CLX with a CLX loaded through ASDF, hopefully this will be Telent CLX."
392 (ext:without-package-lock ("XLIB")
393 (delete-package :xlib)
394 (asdf:oos 'asdf:load-op :clx))
395 (call-next-method)))))
396
397 (defsystem :clim-beagle
398 :depends-on (clim)
399 :components
400 ((:module "Backends"
401 :components
402 ((:module "beagle"
403 :serial t
404 :components
405 ((:file "package")
406 (:file "cocoa-util")
407 (:module "native"
408 :components ((:file "lisp-bezier-path")
409 (:file "lisp-window")
410 (:file "lisp-window-delegate")
411 (:file "lisp-view"
412 :depends-on ("lisp-bezier-path"))
413 (:file "lisp-view-additional"
414 :depends-on ("lisp-view"))
415 (:file "lisp-scroller")
416 (:file "lisp-slider")
417 (:file "lisp-button")
418 (:file "lisp-image")))
419 (:module "windowing"
420 :depends-on ("native")
421 :components ((:file "port")
422 (:file "frame-manager")
423 (:file "mirror")
424 (:file "graft")))
425 (:module "native-panes"
426 :components ((:file "beagle-scroll-bar-pane")
427 (:file "beagle-slider-pane")
428 ;; Basic buttons - not collections of buttons
429 (:file "beagle-fundamental-button-pane")
430 ;; Button collections (radio + checkbox)
431 ;; (:file "beagle-button-collection-pane")
432 (:file "scroller-pane-fix")))
433 (:module "output"
434 :depends-on ("windowing")
435 :components ((:file "medium")
436 (:file "fonts")))
437 (:module "input"
438 :depends-on ("windowing")
439 :components ((:file "events")
440 (:file "keysymdef")))
441 (:module "glimpse"
442 :components ((:file "glimpse")
443 (:file "glimpse-support")
444 (:file "glimpse-command-tables")
445 (:file "glimpse-present-process"
446 :depends-on ("glimpse" "glimpse-support"))
447 (:file "glimpse-present-window"
448 :depends-on ("glimpse" "glimpse-support"))
449 (:file "glimpse-modeless-commands"
450 :depends-on ("glimpse" "glimpse-support"))
451 (:file "glimpse-process-commands"
452 :depends-on ("glimpse" "glimpse-support"))
453 (:file "glimpse-window-commands"
454 :depends-on ("glimpse" "glimpse-support"))))
455 (:module "profile"
456 :components ((:file "profile")))
457 (:module "tests"
458 :components ((:file "drawing-tests")
459 (:file "graft-tests"))))))))
460 )
461
462 (defsystem :clim-null
463 :depends-on (:clim)
464 :components
465 ((:module "Backends/Null"
466 :pathname #.(make-pathname :directory '(:relative "Backends" "Null"))
467 :components
468 ((:file "package")
469 (:file "port" :depends-on ("package"))
470 (:file "medium" :depends-on ("port" "package"))
471 (:file "graft" :depends-on ("port" "package"))
472 (:file "frame-manager" :depends-on ("medium" "port" "package"))))))
473
474 (defsystem :clim-gtkairo
475 :depends-on (:clim :cffi)
476 :components
477 ((:module "Backends/gtkairo"
478 :pathname #.(make-pathname :directory '(:relative "Backends" "gtkairo"))
479 :serial t ;asf wird's ja richten
480 :components
481 ((:file "clim-fix")
482 (:file "package")
483 (:file "gtk-ffi")
484 (:file "cairo-ffi")
485 (:file "ffi")
486 (:file "graft")
487 (:file "port")
488 (:file "event")
489 (:file "keys")
490 (:file "medium")
491 (:file "pango")
492 (:file "cairo")
493 (:file "gdk")
494 (:file "pixmap")
495 (:file "frame-manager")
496 (:file "gadgets")))))
497
498 (defsystem :clim-graphic-forms
499 :depends-on (:clim :graphic-forms-uitoolkit)
500 :components
501 ((:module "Backends/Graphic-Forms"
502 :pathname #.(make-pathname :directory '(:relative "Backends" "Graphic-Forms"))
503 :components
504 ((:file "package")
505 (:file "utils" :depends-on ("package"))
506 (:file "graft" :depends-on ("package"))
507 (:file "port" :depends-on ("utils" "graft"))
508 (:file "medium" :depends-on ("port"))
509 (:file "pixmap" :depends-on ("medium"))
510 (:file "frame-manager" :depends-on ("medium"))
511 (:file "gadgets" :depends-on ("port"))))))
512
513 ;;; TODO/asf: I don't have the required libs to get :clim-opengl to load. tough.
514 (clim-defsystem (:clim-opengl :depends-on (:clim))
515 "Backends/OpenGL/opengl-x-frame-manager"
516 "Backends/OpenGL/opengl-frame-manager"
517 "Backends/OpenGL/opengl-x-port-before"
518 "Backends/OpenGL/opengl-port"
519 "Backends/OpenGL/opengl-x-port-after"
520 "Backends/OpenGL/opengl-medium"
521 "Backends/OpenGL/opengl-x-graft")
522
523 ;;; A system that loads the appropriate backend for the current
524 ;;; platform.
525 (defsystem :clim-looks
526 :depends-on (:clim :clim-postscript
527 ;; If we're on an implementation that ships CLX, use
528 ;; it. Same if the user has loaded CLX already.
529 #+(and (or sbcl scl openmcl ecl clx allegro)
530 (not (or clim-gtkairo clim-graphic-forms clim-beagle)))
531 :clim-clx
532 #+clim-graphic-forms :clim-graphic-forms
533 #+clim-gl :clim-opengl
534 ;; OpenMCL and MCL support the beagle backend (native
535 ;; OS X look&feel on OS X).
536 #+clim-beagle :clim-beagle
537
538 #+clim-gtkairo :clim-gtkairo
539
540 ;; null backend
541 :clim-null
542 )
543 :components (#-(or clim-gtkairo clim-graphic-forms clim-beagle)
544 (:file "Looks/pixie"
545 :pathname #.(make-pathname :directory '(:relative "Looks") :name "pixie" :type "lisp"))))
546
547 ;;; The actual McCLIM system that people should to use in their ASDF
548 ;;; package dependency lists.
549 (defsystem :mcclim
550 :version "0.9.7-dev"
551 :depends-on (:clim-looks))
552
553 (defmethod perform :after ((op load-op) (c (eql (find-system :clim))))
554 (pushnew :clim *features*)
555 (pushnew :mcclim *features*))
556
557 (defmethod perform :after ((op load-op) (c (eql (find-system :mcclim))))
558 (pushnew :clim *features*)
559 (pushnew :mcclim *features*))
560
561 ;; XXX This is very ugly, but ESA and Drei need to know whether they
562 ;; are being compiled as part of McCLIM, or in another CLIM
563 ;; implementation.
564 (defmethod perform :around (op c)
565 (if (and (or (eql (component-system c) (find-system :esa-mcclim))
566 (eql (component-system c) (find-system :drei-mcclim)))
567 (not (find :building-mcclim *features*)))
568 (unwind-protect (progn (push :building-mcclim *features*)
569 (call-next-method))
570 (setf *features* (delete :building-mcclim *features*)))
571 (call-next-method)))

  ViewVC Help
Powered by ViewVC 1.1.5