On 25/08/2020 17:53, luoyongg...@gmail.com wrote: > From: Yonggang Luo <luoyongg...@gmail.com> > > SIMPLE_PATH_RE should match the full path token. > Or the $ and : contained in path would not matched if the path are start with > C:/ and E:/ > --- > scripts/ninjatool.py | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/ninjatool.py b/scripts/ninjatool.py > index cc77d51aa8..6ca8be6f10 100755 > --- a/scripts/ninjatool.py > +++ b/scripts/ninjatool.py > @@ -55,7 +55,7 @@ else: > > PATH_RE = r"[^$\s:|]+|\$[$ :]|\$[a-zA-Z0-9_-]+|\$\{[a-zA-Z0-9_.-]+\}" > > -SIMPLE_PATH_RE = re.compile(r"[^$\s:|]+") > +SIMPLE_PATH_RE = re.compile(r"^[^$\s:|]+$") > IDENT_RE = re.compile(r"[a-zA-Z0-9_.-]+$") > STRING_RE = re.compile(r"(" + PATH_RE + r"|[\s:|])(?:\r?\n)?|.") > TOPLEVEL_RE = re.compile(r"([=:#]|\|\|?|^ +|(?:" + PATH_RE + r")+)\s*|.")
I've tested this and it changes build.ninja so instead of Windows paths beginning C$$ they now begin C$ instead e.g.: build qemu-version.h: CUSTOM_COMMAND | C$:/msys64/home/Mark/qemu/scripts/qemu-version.sh PHONY I was expecting this not to work, however it seems in the next stage of transformation from build.ninja to Makefile.ninja the extra $ is removed correctly: qemu-version.h: qemu-version.h.stamp; @: qemu-version.h.stamp: C:/msys64/home/Mark/qemu/scripts/qemu-version.sh PHONY | ; ${ninja-command-restat} It feels like the extra $ shouldn't be present in build.ninja, but the patch does generate a Makefile.ninja that works. ATB, Mark.