1 (defsystem :cl-smoke.smoke
4 :author "Tobias Rautenkranz"
5 :license "GPL with linking exception"
6 :description "Smoke bindings. Provides the base functionality to
7 implement bindings using the various Smoke modules."
9 (:cffi :closer-mop :alexandria :trivial-garbage :bordeaux-threads
10 #+(and sbcl unix) :sb-posix)
13 ((:module :src :components
15 (:file "using-type" :depends-on ("package"))
16 (:file "overload-resolution" :depends-on ("package" "smoke" "using-type"))
17 #+sbcl (:file "sb-optimize" :depends-on ("overload-resolution"))
18 (:file "smoke" :depends-on (:libsmoke :objects "clos"))
19 (:file "object-map" :depends-on (:objects :utils))
20 (:file "class-map" :depends-on ("package"))
21 (:file "bindings" :depends-on ("package" :utils))
22 (:file "cxx-method" :depends-on ("package"))
23 (:file "clos" :depends-on (:libsmoke "cxx-method" :objects
24 "object-map" "class-map" "bindings"))
25 (:file "smoke-to-clos" :depends-on ("clos" "overload-resolution"))
28 :depends-on (:libsmoke :utils "bindings")
30 ((:file "object") (:file "enum" :depends-on ("object"))
31 (:file "type" :depends-on ("enum"))
32 (:file "method" :depends-on ("type"))
33 (:file "class" :depends-on ("method"))
34 (:file "instance" :depends-on ("class"))
35 (:file "stack" :depends-on ("instance"))))
37 :depends-on ("package")
40 (:file "class" :depends-on ("smoke"))
41 (:file "stack" :depends-on ("class"))
42 (:file "method" :depends-on ("stack"))
43 (:file "type" :depends-on ("method"))))
45 :depends-on ("package")
48 #+(and sbcl unix) (:file "sbcl-bundle")
49 (:module :image :components
50 ((:file "image" :depends-on (:impl))
53 (#+sbcl (:file "sbcl")
54 #+openmcl (:file "ccl")
55 #+(not (or sbcl openmcl))
56 (:file "not-implemented")))))))))))
58 (defmethod perform ((operation test-op) (c (eql (find-system :cl-smoke.smoke))))
59 (operate 'asdf:load-op :cl-smoke.qt.tests)
60 (operate 'asdf:test-op :cl-smoke.qt.tests))