linux-qubasis
linux oasis port as a qubes template
git clone https://9o.is/git/linux-qubasis.git
commit 94a3570513836385d490463e316a94a27224e8ce parent 9dafa8da4eb329d89efb6e2727bc192bdb6119f6 Author: Jul <jul@9o.is> Date: Mon, 25 Aug 2025 10:01:22 +0800 simplify ninja function deps Diffstat:
| M | ninja/functions.sh | | | 31 | ++++++++++++++++++------------- |
| M | pkg/sbase/gen.sh | | | 6 | ++---- |
2 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/ninja/functions.sh b/ninja/functions.sh @@ -101,9 +101,9 @@ lib() { _ninja_buffer_lib="$out $srcs" } -dep() { - _ninja_buffer_dep="\$outdir/$1"; shift; - _ninja_buffer_dep_srcs="$*" +deps() { + _ninja_prefix srcs '$outdir' $* + _ninja_buffer_deps="$srcs" } pkg() { @@ -220,8 +220,7 @@ _ninja_initglobals() { _ninja_buffer_builds= _ninja_buffer_exe= _ninja_buffer_lib= - _ninja_buffer_dep= - _ninja_buffer_dep_srcs= + _ninja_buffer_deps= _ninja_buffer_sync= } @@ -236,7 +235,12 @@ _ninja_prefix() { \$*) ;; *) v="$prefix/$v";; esac - vs="$vs $v" + + if [ "$vs" ]; then + vs="$vs $v" + else + vs="$v" + fi done eval "$variable='$vs'" @@ -273,8 +277,8 @@ _ninja_compile() { *.c) obj="\$outdir/o/${src#\$srcdir/}.o" - if [ "$out" = "$_ninja_buffer_dep" ]; then - src="$src || $_ninja_buffer_dep_srcs" + if [ "$_ninja_buffer_deps" ]; then + src="$src || \$gendir/deps$_ninja_sub" fi build cc "$obj" "$src" @@ -288,11 +292,6 @@ _ninja_compile() { exit 1 esac done - - if [ "$out" = "$_ninja_buffer_dep" ]; then - _ninja_buffer_dep= - _ninja_buffer_dep_srcs= - fi } _ninja_flush_exe() { @@ -376,10 +375,16 @@ _ninja_flush_sync() { _ninja_buffer_sync= } +_ninja_flush_deps() { + build phony "\$gendir/deps$_ninja_sub" "$_ninja_buffer_deps" + _ninja_buffer_deps= +} + _ninja_flush() { _ninja_flush_lib _ninja_flush_exe _ninja_flush_sync _ninja_flush_builds + _ninja_flush_deps } diff --git a/pkg/sbase/gen.sh b/pkg/sbase/gen.sh @@ -77,14 +77,12 @@ lib libutf.a libutf/fgetrune.c \ rule getconf '$srcdir/scripts/getconf.sh >$out' build getconf '$outdir/include/getconf.h' '| $srcdir/scripts/getconf.sh' +deps '$outdir/include/getconf.h' + exes() { for src in "$@"; do exe "$src" "$src.c" '$outdir/libutil.a' '$outdir/libutf.a' man "$src.1" - - if [ "$src" = 'getconf' ]; then - dep "$src" '$outdir/include/getconf.h' - fi done }