Ahead-of-time compile the namespaces given under :aot in project.clj or
those given as command-line arguments.
(defn compile
"Ahead-of-time compile the namespaces given under :aot in project.clj or
those given as command-line arguments."
([project]
(.mkdir (file (:compile-path project)))
(if (seq (compilable-namespaces project))
(if-let [namespaces (seq (stale-namespaces project))]
(eval-in-project project
`(doseq [namespace# '~namespaces]
(when-not ~*silently*
(println "Compiling" namespace#))
(clojure.core/compile namespace#))
nil :skip-auto-compile)
(when-not *silently*
(println "All namespaces already :aot compiled.")))
(when-not *silently*
(println "No namespaces to :aot compile listed in project.clj."))))
([project & namespaces]
(compile (assoc project
:aot (if (= namespaces [":all"])
:all
(map symbol namespaces))))))
Comments top
No comments for compile. Log in to add a comment.