I've got dependencies and tests working on native Win32 now. There was
a few more minor tweaks for win32 names of things when I got to
compiling the test code. I haven't tried building docs on Windows yet.
I also addressed https://github.com/martine/ninja/issues/56 with a
commit here: https://github.com/sgraham/ninja/commit/abeb00966c84534b05229753decb0011d42ce0d3
It supports : in idents when they look like part of a drive letter in
a makefile, and I also added support for ~, (, and ), for things like
"C:\Program Files (x86)" and "C:\PROGRA~1".
I decided against adding support for spaces in filenames in the way
mingw-gcc on Windows seems to output them. It seems all they do is
that backslash is always literal, unless it's followed by a space, in
which case it becomes a space. This was a bit ugly to do in the
current Tokenizer because it uses a pointer in to the buffer that's
not modified/copied, so handling the "compression" of escapes was
messy. Instead I decided to made my showIncludes parser just output
the Windows short file name so there's no spaces (hence the ~ support
above). Anyway, it's kind of hacky, but should be reliable and it was
simple. I added some tests for the dep parser in the commit above, let
me know if you see an unhandled case.
The showIncludes parser I wrote is called "cldeps", and is currently
living in misc/:
https://github.com/sgraham/ninja/blob/master/misc/cldeps.cc.
It just builds via a batch file right now that's hooked into my
version of bootstrap.bat.
But most exciting, ninja seems to work. I can build ninja and
ninja_test with itself and if touch various files, it seems to be
doing the right thing.
Anyway, I know it's kind of a dump of a bunch of things, but hopefully
we can get some or most of the changes merged with a bit more work?
Best,
scott