|
585 | 585 | (js-dependencies {:libs ["closure/library/third_party/closure"]} ["goog.dom.query"])
|
586 | 586 | )
|
587 | 587 |
|
| 588 | +(defn- add-core-macros-if-cljs-js |
| 589 | + "If a compiled entity is the cljs.js namespace, explicitly |
| 590 | + add the cljs.core macros namespace dependency to it." |
| 591 | + [compiled] |
| 592 | + (cond-> compiled |
| 593 | + ;; TODO: IJavaScript :provides :requires should really |
| 594 | + ;; always be Vector<MungedString> - David |
| 595 | + (= ["cljs.js"] (into [] (map str) (deps/-provides compiled))) |
| 596 | + (update-in [:requires] concat ["cljs.core$macros"]))) |
| 597 | + |
588 | 598 | (defn get-compiled-cljs
|
589 | 599 | "Return an IJavaScript for this file. Compiled output will be
|
590 | 600 | written to the working directory."
|
591 | 601 | [opts {:keys [relative-path uri]}]
|
592 | 602 | (let [js-file (comp/rename-to-js relative-path)
|
593 | 603 | compiled (-compile uri (merge opts {:output-file js-file}))]
|
594 |
| - (cond-> compiled |
595 |
| - ;; TODO: IJavaScript :provides :requires should really |
596 |
| - ;; always be Vector<MungedString> - David |
597 |
| - (= ["cljs.js"] (into [] (map str) (deps/-provides compiled))) |
598 |
| - (update-in [:requires] concat ["cljs.core$macros"])))) |
| 604 | + (add-core-macros-if-cljs-js compiled))) |
599 | 605 |
|
600 | 606 | (defn cljs-source-for-namespace
|
601 | 607 | "Given a namespace return the corresponding source with either a .cljs or
|
|
1896 | 1902 | (add-dependency-sources compile-opts)
|
1897 | 1903 | deps/dependency-order
|
1898 | 1904 | (compile-sources compiler-stats compile-opts)
|
| 1905 | + (#(map add-core-macros-if-cljs-js %)) |
1899 | 1906 | (add-js-sources all-opts)
|
1900 | 1907 | (cond-> (= :nodejs (:target all-opts)) (concat [(-compile (io/resource "cljs/nodejs.cljs") all-opts)]))
|
1901 | 1908 | deps/dependency-order
|
|
0 commit comments