linux-qubasis
linux oasis port as a qubes template
git clone https://9o.is/git/linux-qubasis.git
commit 78e15ae6d5c4427107413ef3cf7a90a0309beda8 parent a389899263197df78651f36a671381f0db24b08a Author: Jul <jul@9o.is> Date: Wed, 27 Aug 2025 14:58:22 +0800 organize files in build directory Diffstat:
| M | ninja/functions.sh | | | 38 | +++++++++++++++++++++++++------------- |
1 file changed, 25 insertions(+), 13 deletions(-)
diff --git a/ninja/functions.sh b/ninja/functions.sh @@ -290,7 +290,7 @@ _ninja_setv_init() { outdir='$outdir' srcdir='$srcdir' rootdir='$rootdir' - objdir='$outdir/o' + objdir='$outdir/_objects' pkgdir='$pkgdir' } @@ -340,12 +340,12 @@ _ninja_fspec_file() { local name="$1"; shift if [ ! "$*" ]; then - _ninja_buffer_fspec_files="$_ninja_buffer_fspec_files $pkgdir/$name/fspec/ALL" + _ninja_buffer_fspec_files="$_ninja_buffer_fspec_files $pkgdir/$name/_files/_all" return fi for fspec in $*; do - _ninja_buffer_fspec_files="$_ninja_buffer_fspec_files $pkgdir/$name/fspec/$fspec" + _ninja_buffer_fspec_files="$_ninja_buffer_fspec_files $pkgdir/$name/_files/$fspec" done } @@ -395,7 +395,7 @@ _ninja_flush_exe() { if [ "$objs" ]; then if [ "$_ninja_buffer_d" ]; then - local rspfile=$outdir/rsp/${out##*/} + local rspfile=$outdir/_rsp/${out##*/} build link $out $objs '|' $rspfile bind ldlibs @$rspfile @@ -457,30 +457,38 @@ _ninja_flush_build() { case $_ninja_type in root) build phony $gendir/build $subbuilds;; tpl) build phony $gendir/build $outdir/rootfs.tar.zst;; - pkg) build phony $gendir/build$_ninja_sub $outdir/fspec/ALL $subbuilds;; + pkg) build phony $gendir/build$_ninja_sub $outdir/_files/_all $subbuilds;; esac } _ninja_flush_sync() { - local subsyncs='$outdir/meta/version' + local subsyncs='' local verfile="$_ninja_dir"/version + if [ "$_ninja_type" != 'root' ]; then + subsyncs='$outdir/_files/_version' + fi + for pkg in $_ninja_buffer_subgen; do subsyncs="$subsyncs \$gendir/$pkg/sync" done build phony $gendir/sync$_ninja_sub "$subsyncs" + if [ "$_ninja_type" = 'root' ]; then + return + fi + if [ ! -f "$verfile" ]; then - build touch $outdir/meta/version + build touch $outdir/_files/_version return fi - build sync $outdir/meta/version $gendir/version '|' $basedir/ninja/sync.sh + build sync $outdir/_files/_version $gendir/version '|' $basedir/ninja/sync.sh if [ "$_ninja_buffer_sync" ]; then _ninja_dedup _ninja_buffer_sync "$_ninja_buffer_sync" - build phony "$_ninja_buffer_sync" $outdir/meta/version + build phony "$_ninja_buffer_sync" $outdir/_files/_version fi } @@ -506,8 +514,12 @@ _ninja_flush_headers() { } _ninja_flush_fspec() { + if [ "$_ninja_type" = 'root' ]; then + return + fi + if [ ! "$_ninja_buffer_fspec" ] && [ ! "$_ninja_buffer_fspec_files" ]; then - build touch $outdir/fspec/ALL + build touch $outdir/_files/_all return fi @@ -518,7 +530,7 @@ _ninja_flush_fspec() { mode="$3" src="${4-}" - out="$outdir/fspec/${path##*/}" + out="$outdir/_files/${path##*/}" dep='| $basedir/ninja/fspec.sh $pkgdir/fspec-sync/host/fspec-hash' if [ "$type" = 'reg' ]; then @@ -538,10 +550,10 @@ _ninja_flush_fspec() { printf "$out " done) - build cat $outdir/fspec/ALL $fspecs $_ninja_buffer_fspec_files + build cat $outdir/_files/_all $fspecs $_ninja_buffer_fspec_files if [ "$_ninja_type" = 'tpl' ]; then - build fspec-tar $outdir/rootfs.tar.zst $outdir/fspec/ALL + build fspec-tar $outdir/rootfs.tar.zst $outdir/_files/_all fi }