clim-tos.asd 8.97 KB
Newer Older
1 2 3

(in-package #:asdf-user)

4
(defsystem #:clim-tos
5 6
  :description "CLIM 2 implementation released by Franz Inc."
  :license "BSD-4-Clause"
7
  :depends-on (#:clim-tos/core))
8

9 10 11 12 13 14 15
(defsystem #:clim-tos/all
  :description "All default packages for demo."
  :depends-on (#:clim-tos
               #:clim-tos/clx-backend
               #:clim-tos/examples
               #:clim-tos/homegrown))

16
;;; based on `clim-standalone' in sys/sysdcl.lisp
17
(defsystem #:clim-tos/core
18
  :description "Core functionality (doesn't contain backends)."
19
  :depends-on (#:clim-tos/silica)
20
  :components ((:module "clim"
21
                        :components
22
                        (;; Basic tools
23 24 25 26 27 28 29
                         (:file "gestures")
                         (:file "defprotocol")
                         (:file "stream-defprotocols")
                         (:file "defresource")
                         (:file "temp-strings")
                         (:file "clim-defs")

30
                         ;; Definitions and protocols
31 32 33 34 35 36 37 38
                         (:file "stream-class-defs")
                         (:file "interactive-defs")
                         (:file "cursor")
                         (:file "view-defs")
                         (:file "input-defs")
                         (:file "input-protocol")
                         (:file "output-protocol")

39
                         ;; Output recording
40
                         (:file "recording-defs")
41
                         (:file "formatted-output-defs")
42 43 44 45 46
                         (:file "recording-protocol")
                         (:file "text-recording")
                         (:file "graphics-recording")
                         (:file "design-recording")

47
			 ;; Input editing
48 49 50 51
                         (:file "interactive-protocol")
                         (:file "input-editor-commands")
                         #+(and allegro (not acl86win32)) (:file "japanese-input-editor")

52
                         ;; Incremental redisplay
53 54
                         (:file "incremental-redisplay")

55
                         ;; Windows (sheets)
56 57 58 59 60
                         (:file "coordinate-sorted-set")
                         (:file "r-tree")
                         (:file "window-stream")
                         (:file "pixmap-streams")

61
			 ;; Presentation types
62 63 64 65 66 67 68 69 70
                         (:file "ptypes1")
                         (:file "completer")
                         (:file "presentations")
                         (:file "translators")
                         (:file "histories")
                         (:file "ptypes2")
                         (:file "standard-types")
                         #+allegro (:file "excl-presentations")

71
                         ;; Formatted output
72 73 74 75 76
                         (:file "table-formatting")
                         (:file "graph-formatting")
                         (:file "surround-output")
                         (:file "text-formatting")

77
			 ;; Pointer tracking
78 79 80
                         (:file "tracking-pointer")
                         (:file "dragging-output")

81
                         ;; Gadgets
82 83 84
                         (:file "db-stream")
                         (:file "gadget-output")

85
                         ;; Application building substrate
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
                         (:file "accept")
                         (:file "present")
                         (:file "command")
                         (:file "command-processor")
                         (:file "basic-translators")
                         (:file "frames")
                         (:file "panes")
                         (:file "default-frame")
                         (:file "activities")
                         (:file "db-menu")
                         #+acl86win32 (:file "db-list")
                         #+acl86win32 (:file "db-text")
                         (:file "noting-progress")
                         (:file "menus")
                         (:file "accept-values")
                         (:file "drag-and-drop")
                         (:file "item-list-manager")

104
                         ;; Bootstrap everything
105
                         (:file "stream-trampolines")))))
106

107
;;; based on `clim-utils'
108
(defsystem #:clim-tos/utils
109 110 111
  :depends-on (#:closer-mop
               #:trivial-gray-streams
               #:bordeaux-threads)
112
  :components
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
  ((:module "utils"
            :components ((:file "packages")
                         (:file "defun-utilities")
                         (:file "reader")
                         (:file "clos-patches")
                         (:file "clos")

                         ;; General lisp extensions
                         (:file "utilities")
                         (:file "lisp-utilities")
                         (:file "processes")
                         (:file "queue")
                         (:file "timers")
                         (:file "protocols")

                         ;; Establish a uniform stream model
129
                         (:file "clim-streams")
130
                         (:file "cl-streams")
131 132 133 134 135 136 137 138 139 140 141

                         ;; Basic utilities for Silica and CLIM
                         (:file "clim-macros")
                         (:file "transformations")
                         (:file "regions")
                         (:file "region-arithmetic")
                         (:file "extended-regions")
                         (:file "base-designs")
                         (:file "designs")))))

;;; based on `clim-silica'
142 143
(defsystem #:clim-tos/silica
  :depends-on (#:clim-tos/utils
144 145
               #:closer-mop
               #:alexandria)
146 147 148
  :components
  ((:module "silica"
            :components
149
            (;; Silica
150 151 152 153 154 155 156 157 158 159 160 161 162 163
             (:file "macros")
             (:file "classes")
             (:file "text-style")
             (:file "sheet")
             (:file "mirror")
             (:file "event")
             (:file "port")
             (:file "medium")
             (:file "framem")
             (:file "graphics")
             (:file "pixmaps")
             (:file "std-sheet")

             ;; "Windshield", aka "DashBoard"
164
             ;; Layout gadgets
165 166 167 168 169
             (:file "layout")
             (:file "db-layout")
             (:file "db-box")
             (:file "db-table")

170
             ;; 'Physical' gadgets
171 172
             (:file "gadgets")
             (:file "db-border")
173 174 175
             (:file "db-scroll")
             (:file "db-button")
             (:file "db-label")
176
             (:file "db-slider")
177
             (:file "scroll-pane")))))
178

179 180
(defsystem #:clim-tos/homegrown
  :depends-on (#:clim-tos/silica)
181 182 183
  :components
  ((:module "homegrown"
  	    :components
184
  	    (;(:file "scroll-pane")
185 186 187 188 189 190 191 192
  	     (:file "db-button")
  	     (:file "db-label")
  	     (:file "db-slider")
  	     (:file "db-menu")
  	     (:file "db-list" :depends-on ("db-menu"))
  	     (:file "db-text")
  	     (:file "last")))))

193
(defsystem #:clim-tos/postscript
194 195
  :description "Draw-only backend as defined in the specification.")

196
;;; based on `clx-clim' in clx/sysdcl.lisp
197
(defsystem #:clim-tos/clx-backend
198
  :description "Reference backend for X-Window system."
199
  :depends-on (#:clx #:clim-tos/core)
200 201 202 203 204 205 206 207 208
  :components
  ((:module "clx"
	    :components
	    ((:file "pkgdcl")
	     (:file "clx-port")
	     (:file "clx-mirror")
	     (:file "clx-medium")
	     (:file "clx-pixmaps")
	     (:file "clx-frames")))))
209

210 211 212
;;; based on `clim-test' in test/sysdcl.lisp
(defsystem #:clim-tos/tests
  :description "CLIM tests (framework and definitions)."
213 214
  :depends-on (#:clim-tos/core
               #:clim-tos/examples)
215 216 217 218 219 220 221 222 223 224 225
  :serial t
  :components
  ((:module "test"
            :components
            ((:file "test-suite")
             (:file "test")
             (:file "test-buttons")
             (:file "test-sliders")
             (:file "simple-test")
             (:file "postscript-tests")))))

226
;;; based on `clim-demo' in demo/sysdcl.lisp
227 228 229
(defsystem #:clim-tos/examples
  :description "Applications bundled in clim-tos repository."
  :depends-on (#:clim-tos/core
230
               #:bordeaux-threads)
231 232 233 234 235 236 237 238

  :components
  ((:module "demo"
            :components
            ((:file "packages")
             (:file "demo-driver" :depends-on ("packages"))
             (:file "listener" :depends-on ("demo-driver"))
             (:file "graphics-demos" :depends-on ("demo-driver"))
239
             (:file "palette" :depends-on ("demo-driver"))
240 241 242
             ;(:file "cad-demo" :depends-on ("demo-driver"))
             ;(:file "navdata" :depends-on ("packages"))
             ;(:file "navfun" :depends-on ("navdata"))
Jacek Złydach's avatar
Jacek Złydach committed
243
             (:file "puzzle" :depends-on ("demo-driver"))
244 245
             (:file "address-book" :depends-on ("demo-driver"))
             (:file "thinkadot" :depends-on ("demo-driver"))
246 247 248 249
             ;(:file "plot" :depends-on ("demo-driver"))
             ;(:file "color-editor" :depends-on ("demo-driver"))
             ;(:file "graphics-editor" :depends-on ("demo-driver"))
             ))))
250 251 252 253 254 255

(defmethod perform :after ((op load-op) (c (eql (find-system :clim-tos))))
  (pushnew :clim *features*)
  (pushnew :clim-2 *features*)
  (pushnew :clim-2.1 *features*)
  (pushnew :silica *features*))