allow compiling to stream
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
diff --git a/precompile/precompile.lisp b/precompile/precompile.lisp
index 49c64bc..6e81251 100644
--- a/precompile/precompile.lisp
+++ b/precompile/precompile.lisp
@@ -29,6 +29,49 @@
(copy-files path output :replace t :update t)
nil))
+(defmethod compile-asset ((asset preprocessed-asset) (output stream))
+ (let ((assets (preprocess-asset asset)))
+ (cond
+ ((find :assets *debug*)
+ (format output "var triangle_include = (function() {
+ var includes = [];
+ var head = document.getElementsByTagName('head')[0];
+ var inc = function () {
+ if (includes.length == 0) return;
+ var s = document.createElement('script');
+ s.type = 'text/javascript';
+ s.onreadystatechange = function () {
+ if (this.readyState == 'complete') inc();
+ }
+ s.onload = inc;
+ s.src = includes.pop();
+ console.log('triangle include ', s.src);
+ head.appendChild(s);
+
+ };
+ var f = function () { console.log('done loading includes'); };
+ return function (x) {
+ if (x === true) {
+ includes.reverse();
+ inc();
+ } else {
+ includes.push(x);
+ }
+ };
+})();
+")
+ (dolist (a assets)
+ (msg "P ~A" (asset-source-path a))
+ (cond ((eq asset a) (process-asset a output))
+ (t (include-asset a output)
+ (copy-files (asset-source-path a)
+ (asset-path a)
+ :replace t :update t))))
+ (format output "triangle_include(true);~%"))
+ (t (dolist (a assets)
+ (msg "P ~A" (asset-source-path a))
+ (process-asset a output))))))
+
(defmethod compile-asset ((asset preprocessed-asset) (output pathname))
(ensure-directories-exist output)
(let ((assets (preprocess-asset asset)))
@@ -38,18 +81,7 @@
output))
assets))
(with-output-to-file/utf-8 (out output)
- (cond
- ((find :assets *debug*)
- (dolist (a assets)
- (msg "P ~A" (asset-source-path a))
- (if (eq asset a)
- (process-asset a out)
- (progn (include-asset a out)
- (copy-files (asset-source-path a)
- (asset-path a))))))
- (t (dolist (a assets)
- (msg "P ~A" (asset-source-path a))
- (process-asset a out))))))))
+ (compile-asset asset out)))))
;; Precompile