(zilch lang ninja): Support overriding source used for build

Change-Id: I6a6a696488f85192dbd911df3d2d28fee01f7b5b
This commit is contained in:
puck 2025-05-11 22:21:07 +00:00
parent 5d4fb382a8
commit 275b56622d
2 changed files with 23 additions and 5 deletions

View file

@ -6,7 +6,7 @@
(zilch magic) (zilch nixpkgs) (zilch vfs)
(zilch nix drv)
(zilch zexpr)
(srfi 132) (srfi 152))
(srfi 132) (srfi 146) (srfi 152))
(export
setup-ninja-environment
@ -98,6 +98,18 @@
; This VFS contains two directories: `src` (source tree) and `build` (Ninja build files).
(define configured-vfs (vfs-from-store configured-drv))
(when (ninja-build-config-override-source conf)
(let
((filtered (mapping-filter! (lambda (path val) (not (or (string=? "src" (car path)) (string-prefix? "src/" (car path))))) (vfs-contents configured-vfs))))
(mapping-for-each
(lambda (p v)
(set! filtered
(mapping-set! filtered
(cons (if (string=? (car p) "") "src" (string-append "src/" (car p))) (cdr p))
v)))
(vfs-contents (ninja-build-config-override-source conf)))
(set! configured-vfs (make-vfs filtered))))
(set-ninja-build-config-root-dir! conf configured-vfs)