1 (defpackage :cxml-system
3 (in-package :cxml-system)
5 (defclass dummy-cxml-component () ())
7 (defmethod asdf:component-name ((c dummy-cxml-component))
10 ;; force loading of closure-common.asd, which installs *FEATURES* this
11 ;; file depends on. Use MISSING-DEPENDENCY for asdf-install.
12 (unless (find-system :closure-common nil)
13 (error 'missing-dependency
14 :required-by (make-instance 'dummy-cxml-component)
16 :requires :closure-common))
18 (defclass closure-source-file (cl-source-file) ())
21 (pushnew 'uri-is-namestring *features*)
24 (defmethod perform :around ((o compile-op) (s closure-source-file))
25 ;; shut up already. Correctness first.
26 (handler-bind ((sb-ext:compiler-note #'muffle-warning))
27 (let (#+sbcl (*compile-print* nil))
30 (asdf:defsystem :cxml-xml
31 :default-component-class closure-source-file
32 :pathname (merge-pathnames
34 (make-pathname :name nil :type nil :defaults *load-truename*))
37 (:file "util" :depends-on ("package"))
39 (:file "xml-name-rune-p" :depends-on ("package" "util"))
40 (:file "split-sequence" :depends-on ("package"))
41 (:file "xml-parse" :depends-on ("package" "util" "sax-handler" "split-sequence" "xml-name-rune-p"))
42 (:file "unparse" :depends-on ("xml-parse"))
43 (:file "xmls-compat" :depends-on ("xml-parse"))
44 (:file "recoder" :depends-on ("xml-parse"))
45 (:file "xmlns-normalizer" :depends-on ("xml-parse"))
46 (:file "space-normalizer" :depends-on ("xml-parse"))
47 (:file "catalog" :depends-on ("xml-parse"))
48 (:file "sax-proxy" :depends-on ("xml-parse"))
49 (:file "atdoc-configuration" :depends-on ("package")))
50 :depends-on (:closure-common :puri #-scl :trivial-gray-streams))
52 (defclass utf8dom-file (closure-source-file) ((of)))
54 (defmethod output-files ((operation compile-op) (c utf8dom-file))
55 (let* ((normal (car (call-next-method)))
56 (name (concatenate 'string (pathname-name normal) "-utf8")))
57 (list (make-pathname :name name :defaults normal))))
59 ;; must be an extra method because of common-lisp-controller's :around method
60 (defmethod output-files :around ((operation compile-op) (c utf8dom-file))
61 (let ((x (call-next-method)))
62 (setf (slot-value c 'of) (car x))
65 (defmethod perform ((o load-op) (c utf8dom-file))
66 (load (slot-value c 'of)))
68 (defmethod perform ((operation compile-op) (c utf8dom-file))
69 (let ((*features* (cons 'utf8dom-file *features*))
71 (symbol-value (find-symbol "*UTF8-RUNES-READTABLE*"
72 :closure-common-system))))
75 (asdf:defsystem :cxml-dom
76 :default-component-class closure-source-file
77 :pathname (merge-pathnames
79 (make-pathname :name nil :type nil :defaults *load-truename*))
82 (:file rune-impl :pathname "dom-impl" :depends-on ("package"))
83 (:file rune-builder :pathname "dom-builder" :depends-on (rune-impl))
85 (utf8dom-file utf8-impl :pathname "dom-impl" :depends-on ("package"))
87 (utf8dom-file utf8-builder :pathname "dom-builder" :depends-on (utf8-impl))
88 (:file "dom-sax" :depends-on ("package")))
89 :depends-on (:cxml-xml))
91 (asdf:defsystem :cxml-klacks
92 :default-component-class closure-source-file
93 :pathname (merge-pathnames
95 (make-pathname :name nil :type nil :defaults *load-truename*))
100 (:file "klacks-impl")
101 (:file "tap-source"))
102 :depends-on (:cxml-xml))
104 (asdf:defsystem :cxml-test
105 :default-component-class closure-source-file
106 :pathname (merge-pathnames
108 (make-pathname :name nil :type nil :defaults *load-truename*))
109 :components ((:file "domtest") (:file "xmlconf"))
110 :depends-on (:cxml-xml :cxml-klacks :cxml-dom))
112 (asdf:defsystem :cxml
114 :depends-on (:cxml-dom :cxml-klacks :cxml-test))