diff --git a/cli/zilch-ninja.scm b/cli/zilch-ninja.scm index 3574953..ef0a74d 100644 --- a/cli/zilch-ninja.scm +++ b/cli/zilch-ninja.scm @@ -21,6 +21,7 @@ (max-jobs #t #\j) (verbose #f #\v) (source #t #\s) + (project #t #\p) (print-build-logs #f #\L)) (list->vector (cdr (command-line))) print-help)) @@ -64,6 +65,16 @@ (call-with-output-file (ninja-build-config-depfile-path config) (lambda (p) (write (mapping->alist (finalized-drv-depfile finalized-drv)) p)))) (for-each (lambda (v) (export-depfiles (force (drv-rewrite-finalized-drv v)))) (finalized-drv-rewritten-drvs finalized-drv))) +(for-each + (lambda (c) + (when (eq? (car c) 'project) + (let loop ((rewrites (ninja-build-config-rewrites config))) + (cond + ((null? rewrites) (error "Subproject not found" (cdr c))) + ((string=? (caar rewrites) (cdr c)) (set! config (cdar rewrites))) + (else (loop (cdr rewrites))))))) + options) + (cond ((string=? (car args) "source") (let*-values diff --git a/docs/modules/ROOT/pages/ninja/man.adoc b/docs/modules/ROOT/pages/ninja/man.adoc index d2da5da..17eaf51 100644 --- a/docs/modules/ROOT/pages/ninja/man.adoc +++ b/docs/modules/ROOT/pages/ninja/man.adoc @@ -41,6 +41,10 @@ written. See the documentation at https://puck.moe/zilch/docs/. *--help*:: Print a help message. +*-p* _NAME_:: +*--project* _NAME_:: + Operate only on a rewritten input derivation. + *-s* _DIR_:: *--source* _DIR_:: Override the input source for builds. Doesn't reconfigure the build,