-;;;; -*- lisp -*-
-
-(in-package :cl-user)
-
-(defpackage :parenscript.system
- (:use :cl :asdf))
-
-(in-package :parenscript.system)
-
-(defsystem :parenscript
- :name "parenscript"
- :author "Manuel Odendahl <manuel@bl0rg.net>"
- :version "0"
- :maintainer "Edward Marco Baringer <mb@bese.it>"
- :licence "BSD"
- :description "js - javascript compiler"
-
- :depends-on (#-allegro :htmlgen)
-
- :components ((:file "package")
- (:file "utils" :depends-on ("package"))
- (:file "js" :depends-on ("package" "utils"))
- (:file "js-html" :depends-on ("package" "js" "utils"))
- (:file "css" :depends-on ("package" "utils"))))
+;;;; -*- lisp -*-
+
+(in-package :cl-user)
+
+(defpackage :parenscript.system
+ (:use :cl :asdf))
+
+(in-package :parenscript.system)
+
+(defsystem :parenscript
+ :name "parenscript"
+ :author "Manuel Odendahl <manuel@bl0rg.net>"
+ :version "0"
+ :maintainer "Vladimir Sedach <vsedach@gmail.com>"
+ :licence "BSD"
+ :description "Parenscript is a lispy language that compiles to Javascript."
+ :components ((:static-file "parenscript.asd")
+ (:module :src
+ :components ((:file "package")
+ (:file "utils" :depends-on ("package"))
+ (:file "js-source-model" :depends-on ("package" "utils"))
+ (:file "ps-source-model" :depends-on ("js-source-model"))
+ (:file "parser" :depends-on ("js-source-model" "ps-source-model"))
+ (:file "deprecated-interface" :depends-on ("parser"))
+ (:file "js-macrology" :depends-on ("deprecated-interface"))
+ (:file "ps-macrology" :depends-on ("js-macrology"))
+ (:file "js-translation" :depends-on ("ps-macrology"))
+; (:file "js-ugly-translation" :depends-on ("js-translation"))
+ (:file "reader" :depends-on ("parser"))
+ (:file "compilation-interface" :depends-on ("package" "reader" "js-translation")); "js-ugly-translation"))
+ ;; standard library
+ (:module :lib
+ :components ((:static-file "functional.lisp")
+ (:file "js-html")
+ (:file "css" )
+ (:file "js-utils"))
+ :depends-on ("compilation-interface")))))
+ :depends-on ())
+
+(defmethod asdf:perform :after ((op asdf:load-op) (system (eql (asdf:find-system :parenscript))))
+ (pushnew :parenscript cl:*features*))
+
+(defmethod asdf:perform ((o test-op) (c (eql (find-system :parenscript))))
+ (asdf:operate 'asdf:test-op :parenscript.test))
+
+(defsystem :parenscript.test
+ :depends-on (:parenscript :fiveam :cl-ppcre)
+ :components ((:module :t
+ :components ((:file "test-package")
+ (:file "test" :depends-on ("test-package"))
+ (:file "ref2test" :depends-on ("test"))
+ (:file "reference-tests" :depends-on ("test"))
+ (:file "ps-tests" :depends-on ("test"))))))
+
+(defmethod asdf:perform ((o test-op) (c (eql (find-system :parenscript.test))))
+ (asdf:operate 'asdf:load-op :parenscript.test)
+ (funcall (intern (symbol-name :run-tests)
+ (find-package :js-test))))