lqml/examples/Qt6/advanced-qml-auto-reload/qml/.create-qml-loaders.lisp
pls.153 dc29ac9084 add Qt6 version of some examples (see below); revisions
'9999', 'advanced-qml-auto-reload', 'planets', 'sokoban'
2024-10-22 13:27:56 +02:00

22 lines
829 B
Common Lisp

(in-package :cl-user)
(defparameter *dir* *load-truename*)
(defvar *template* (with-open-file (s (merge-pathnames ".template.qml" *dir*))
(let ((str (make-string (file-length s))))
(read-sequence str s)
str)))
(defun create-qml-loaders ()
(dolist (file (directory (merge-pathnames "ext/**/*.qml" *dir*)))
(let* ((name (namestring file))
(p (1+ (search "/ext/" name)))
(loader (concatenate 'string (subseq name 0 p) "." (subseq name p))))
(unless (probe-file loader)
(ensure-directories-exist loader)
(with-open-file (s loader :direction :output)
(let ((new (subseq name p)))
(format t "~&creating .~A~%" new)
(format s *template* (subseq name p))))))))
(create-qml-loaders)