linux-qubasis
linux oasis port as a qubes template
git clone https://9o.is/git/linux-qubasis.git
commit 58cbad15cef9841fb48011b0f9790b4146f2d86c parent 4b357625bb4ca8a7211fa2817c34ca710830a61c Author: Jul <jul@9o.is> Date: Fri, 7 Nov 2025 00:12:34 -0500 save headers in $outdir/_target/headers Diffstat:
| M | ninja/functions.sh | | | 53 | ++++++++++++++++++++++++++++++++++------------------- |
1 file changed, 34 insertions(+), 19 deletions(-)
diff --git a/ninja/functions.sh b/ninja/functions.sh @@ -157,9 +157,31 @@ dep() { } headers() { + _hdr_prefix= + + case "$1" in + --prefix) + shift + _hdr_prefix=$1 + shift + ;; + esac + _ninja_prefix _srcs $srcdir $* _ninja_sync $_srcs - _ninja_buffer_headers="$_ninja_buffer_headers $_srcs" + + for _src in $_srcs; do + case $_src in + \$srcdir/*) + _out=$outdir/include/${_hdr_prefix}${_src##*/} + build copy $_out $_src + ;; + *) + _out=$_src + ;; + esac + printf '%s\n' "$_out" >> "$_ninja_headers" + done } pkg() { @@ -200,6 +222,7 @@ subgen() { gen() { _ninja_init $1 _ninja_setv_init $1 + _ninja_targets_init . "$_ninja_dir"/gen.sh _ninja_complete @@ -247,6 +270,7 @@ _ninja_complete() { _ninja_initglobals() { _ninja_basedir="${_ninja_basedir-$basedir}" _ninja_dir="$_ninja_basedir"/$1 + _ninja_outdir="$_ninja_basedir"/$BUILDDIR/$1 _ninja_ninjadir="$_ninja_basedir"/$BUILDDIR/ninja DIR="$_ninja_dir" @@ -280,7 +304,6 @@ _ninja_initglobals() { _ninja_buffer_exe= _ninja_buffer_lib= _ninja_buffer_deps= - _ninja_buffer_headers= _ninja_buffer_sync= _ninja_buffer_fetch= _ninja_buffer_build= @@ -290,6 +313,13 @@ _ninja_initglobals() { _ninja_default_target= } +_ninja_targets_init() { + mkdir -p "$_ninja_outdir/_targets" + + _ninja_headers="$_ninja_outdir/_targets/headers" + rm -f $_ninja_headers +} + _ninja_setv_init() { setv gendir $1 setv tgtdir '$gendir' @@ -691,26 +721,11 @@ _ninja_flush_deps() { } _ninja_flush_headers() { - if [ ! "$_ninja_buffer_headers" ]; then + if [ ! -e "$_ninja_headers" ]; then return fi - _srcs= - - for _src in $_ninja_buffer_headers; do - case $_src in - \$srcdir/*) - _out=$outdir/include/${_src##*/} - _srcs="$_srcs $_out" - build copy $_out $_src - ;; - *) - _srcs="$_srcs $_src" - ;; - esac - done - - build phony $tgtdir/headers $_srcs + build phony $tgtdir/headers $(cat "$_ninja_headers" | xargs) } _ninja_flush_fspec() {