ASDF interaction for Parenscript files
[clinton/parenscript.git] / parenscript.asd
1 ;;;; -*- lisp -*-
2
3 (in-package :cl-user)
4
5 (defpackage :parenscript.system
6 (:use :cl :asdf))
7
8 (in-package :parenscript.system)
9
10 (defsystem :parenscript
11 :name "parenscript"
12 :author "Manuel Odendahl <manuel@bl0rg.net>"
13 :version "0"
14 :maintainer "Vladimir Sedach <vsedach@gmail.com>"
15 :licence "BSD"
16 :description "Parenscript is a lispy language that compiles to Javascript."
17 :components ((:static-file "parenscript.asd")
18 (:module :src
19 :components ((:file "package")
20 (:file "utils" :depends-on ("package"))
21 (:file "js-source-model" :depends-on ("package" "utils"))
22 (:file "ps-source-model" :depends-on ("js-source-model"))
23 (:file "parser" :depends-on ("js-source-model" "ps-source-model"))
24 (:file "builtin-packages" :depends-on ("parser"))
25 (:file "deprecated-interface" :depends-on ("parser"))
26 (:file "js-macrology" :depends-on ("deprecated-interface"))
27 (:file "ps-macrology" :depends-on ("js-macrology"))
28 (:file "js-translation" :depends-on ("ps-macrology"))
29 ; (:file "js-ugly-translation" :depends-on ("js-translation"))
30 (:file "reader" :depends-on ("parser"))
31 (:file "compilation-interface" :depends-on ("package" "reader" "js-translation" "builtin-packages")); "js-ugly-translation"))
32 (:file "paren-asdf" :depends-on ("package" "compilation-interface"))
33 ;; standard library
34 (:module :lib
35 :components ((:static-file "functional.lisp")
36 (:file "js-html")
37 (:file "css" )
38 (:file "js-utils"))
39 :depends-on ("compilation-interface")))))
40 :depends-on ())
41
42 (defmethod asdf:perform :after ((op asdf:load-op) (system (eql (asdf:find-system :parenscript))))
43 (pushnew :parenscript cl:*features*))
44
45 (defmethod asdf:perform ((o test-op) (c (eql (find-system :parenscript))))
46 (asdf:operate 'asdf:test-op :parenscript.test))
47
48 (defsystem :parenscript.test
49 :depends-on (:parenscript :fiveam :cl-ppcre)
50 :components ((:module :t
51 :components ((:file "test-package")
52 (:file "test" :depends-on ("test-package"))
53 (:file "ref2test" :depends-on ("test"))
54 (:file "reference-tests" :depends-on ("test"))
55 (:file "ps-tests" :depends-on ("test"))
56 (:file "package-system-tests" :depends-on ("test"))))))
57
58
59 (defmethod asdf:perform ((o test-op) (c (eql (find-system :parenscript.test))))
60 (asdf:operate 'asdf:load-op :parenscript.test)
61 (funcall (intern (symbol-name :run-tests)
62 (find-package :parenscript-test))))