|
35 | 35 |
|
36 | 36 | (def js-reserved ana/js-reserved) |
37 | 37 |
|
38 | | -(def ^:dynamic *dependents* nil) |
| 38 | +(def ^:dynamic *recompiled* nil) |
39 | 39 | (def ^:dynamic *inputs* nil) |
40 | 40 | (def ^:dynamic *source-map-data* nil) |
41 | 41 | (def ^:dynamic *lexical-renames* {}) |
|
1268 | 1268 | "Return true if the src file requires compilation." |
1269 | 1269 | ([src dest] (requires-compilation? src dest nil)) |
1270 | 1270 | ([^File src ^File dest opts] |
1271 | | - (let [{:keys [ns]} (ana/parse-ns src)] |
| 1271 | + (let [{:keys [ns requires]} (ana/parse-ns src)] |
1272 | 1272 | (ensure |
1273 | 1273 | (or (not (.exists dest)) |
1274 | 1274 | (> (.lastModified src) (.lastModified dest)) |
|
1283 | 1283 | (if (= (:optimizations opts) :none) |
1284 | 1284 | (not (.exists (io/file (str (.getPath dest) ".map")))) |
1285 | 1285 | (not (get-in @env/*compiler* [::compiled-cljs (.getAbsolutePath dest)])))) |
1286 | | - (let [{:keys [recompile visited]} |
1287 | | - (and *dependents* @*dependents*)] |
1288 | | - (and (contains? recompile ns) |
1289 | | - (not (contains? visited ns)))))))))) |
| 1286 | + (when-let [recompiled' (and *recompiled* @*recompiled*)] |
| 1287 | + (some requires recompiled')))))))) |
1290 | 1288 |
|
1291 | 1289 | #?(:clj |
1292 | 1290 | (defn compile-file |
|
1331 | 1329 | (not= :interactive (:mode opts))) |
1332 | 1330 | (swap! env/*compiler* update-in [::ana/namespaces] dissoc ns)) |
1333 | 1331 | (let [ret (compile-file* src-file dest-file opts)] |
1334 | | - (when *dependents* |
1335 | | - (swap! *dependents* |
1336 | | - (fn [{:keys [recompile visited]}] |
1337 | | - {:recompile (into recompile |
1338 | | - (ana/ns-dependents ns |
1339 | | - (merge *inputs* nses))) |
1340 | | - :visited (conj visited ns)}))) |
| 1332 | + (when *recompiled* |
| 1333 | + (swap! *recompiled* conj ns)) |
1341 | 1334 | ret)) |
1342 | 1335 | (do |
1343 | 1336 | ;; populate compilation environment with analysis information |
|
0 commit comments