Only compile classes if the bytecode is older than the .clj source.

This commit is contained in:
Phil Hagelberg 2009-11-19 18:35:23 -08:00
parent 1f53bb8d00
commit 601c00859c

View file

@ -11,7 +11,9 @@ unless a list of :namespaces is provided in project.clj."
;; TODO: use a java subprocess in case a different clojure version is needed
(doseq [n (or (:namespaces project)
(find-namespaces-in-dir (file (:root project) "src")))]
(println "Compiling" n)
;; TODO: check to see if bytecode is older than source
(require n)
(clojure.core/compile n)))
(let [ns-file (str (.replaceAll (name n) "\\." "/"))]
(when (> (.lastModified (file (:root project) "src" (str ns-file ".clj")))
(.lastModified (file (:root project) "classes"
(str ns-file "__init.class"))))
(println "Compiling" n)
(clojure.core/compile n)))))