summaryrefslogtreecommitdiff
path: root/mcclim.asd
blob: fd5f5ff05f3d4432bd60b7e496ce21168c25127a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
;;;  (c) copyright 1998,1999,2000 by Michael McDonald (mikemac@mikemac.com)
;;;  (c) copyright 2000, 2014 by
;;;           Robert Strandh (robert.strandh@gmail.com)
;;;  (c) copyright 2005 by
;;;           Andreas Fuchs (asf@boinkor.net)
;;;
;;; This library is free software; you can redistribute it and/or
;;; modify it under the terms of the GNU Library General Public
;;; License as published by the Free Software Foundation; either
;;; version 2 of the License, or (at your option) any later version.
;;;
;;; This library is distributed in the hope that it will be useful,
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
;;; Library General Public License for more details.
;;;
;;; You should have received a copy of the GNU Library General Public
;;; License along with this library; if not, write to the
;;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;;; Boston, MA  02111-1307  USA.

;;; The actual McCLIM system that people should to use in their ASDF
;;; package dependency lists.
(in-package #:asdf-user)

(defsystem "mcclim"
  :author ("Alessandro Serra"
           "Alexey Dejneka"
           "Andrea Demichele"
           "Andreas Fuchs"
           "Andy Hefner"
           "Arnaud Rouanet"
           "Brian Mastenbrook"
           "Brian Spilsbury"
           "Christophe Rhodes"
           "Clemens Fruhwirth"
           "Cyrus Harmon"
           "Daniel Barlow"
           "Daniel Kochmański"
           "Duncan Rose"
           "Edena Pixel"
           "Elias Mårtenson"
           "Frank Buss"
           "Gilbert Baumann"
           "Iban Hatchondo"
           "Julien Boninfan"
           "Jan Moringen"
           "Lionel Salabartan"
           "Max-Gerd Retzlaff"
           "Mike McDonald"
           "Nisar Ahmad"
           "Peter Mechleborg"
           "Rainer Joswig"
           "Robert Goldman"
           "Robert Strandh"
           "Rudi Schlatte"
           "Timothy Moore")
  :license "LGPL-2.1+"
  :version "0.9.8"
  :description "McCLIM is an implementation of the CLIM 2.0 specification."
  :long-description "McCLIM is an implementation of the CLIM 2.0 specification.

CLIM (Common Lisp Interface Manager) is an advanced graphical user
interface management system."
  :depends-on ("mcclim/looks" "mcclim/extensions")
  :components ((:file "default-icons"))
  :in-order-to ((test-op (test-op "mcclim/test"))))

;;; A system that loads the appropriate backend for the current platform.
(defsystem "mcclim/looks"
  :depends-on ("clim"
               "mcclim-clx"                                          #| truetype clx backend |#
               (:feature :mcclim-ffi-freetype "mcclim-clx/freetype") #| adds freetype        |#
               "mcclim-clx-fb"                                       #| experimental backend |#
               ;; null backend
               "mcclim-null"))

(defsystem "mcclim/extensions"
  :depends-on ("mcclim-bitmaps"
               "conditional-commands"
               "mcclim-layouts/tab"
               "mcclim-bezier"
               "clim-pdf"
               "clim-postscript"
               "mcclim-franz"))

(defmethod perform :after ((op load-op) (c (eql (find-system :mcclim))))
  (pushnew :clim *features*)) ; The fact that CLIM itself is available is true when all is loaded.

(defsystem "mcclim/test"
  :depends-on ("mcclim"
               "fiveam"
               "mcclim/test-util")
  :components ((:module "Tests"
                :serial t
                :components ((:file "package")
                             (:file "utils")
                             (:file "input-editing")
                             (:file "commands")
                             (:file "text-selection")
                             (:file "text-formatting")
                             (:file "text-styles")
                             (:file "setf-star")
                             (:module "geometry"
                              :depends-on ("package")
                              :serial t
                              :components ((:file "transforms")
                                           (:file "regions")
                                           (:file "bounding-rectangles")
                                           (:file "algebra")))
                             (:module "drawing"
                              :depends-on ("package")
                              :components ((:file "medium")
                                           (:file "design")
                                           (:file "bezier")))
                             (:module "extended-streams"
                              :depends-on ("package")
                              :components ((:file "stream-input")
                                           (:file "gestures")
                                           (:file "recording")))
                             (:module "presentations"
                              :depends-on ("package")
                              :components ((:file "presentation-types")
                                           (:file "presentation-functions")
                                           (:file "presentation-inheritance")
                                           (:file "translators")
                                           (:file "standard-presentations")))
                             (:module "frames"
                              :depends-on ("package")
                              :components ((:file "define-application-frame"))))))
  :perform (test-op (operation component)
             (uiop:symbol-call '#:clim-tests '#:run-tests)))

(defsystem "mcclim/test-util"
  :depends-on ("mcclim"
               "fiveam")
  :components ((:module "Tests/util"
                :serial t
                :components ((:file "package")
                             (:file "test-page")))))

;;; The fact that our CLIM implementation is McCLIM is already true now.
;;; This feature is notably used by ESA and DREI, in cases where they need to
;;; know whether they are compiled with McCLIM or another CLIM implementation.
(pushnew :mcclim *features*)