--
You received this message because you are subscribed to the Google Groups "ninja-build" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ninja-build...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups "ninja-build" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ninja-build+unsubscribe@googlegroups.com.
Good, I think we're on the same page. :) I was having a hard time expressing the problem.Case A works. A clean build is correct and doesn't require a second build.
Case B doesn't work. An incremental build after modifying a .td requires two builds: one to update the .h, and a second to realize that the .h implicit compile input changed.Unfortunately I don't have a reduced test case yet. I'll try to make one.Mostly I wanted to know, what is the preferred, correct way to express this in build.ninja? From the docs and this email it sounds like the order only dependency should be enough, but something is off. It could be the intermediate phony targets.The way I see the problem is that ninja checks timestamps up front to compute the action graph. At this time, the .h files are older than the .o files, so the compile actions are dropped from the action graph. What logic is supposed to kick in to notice that the .h files are the output of some other target?
--
--
You received this message because you are subscribed to the Google Groups "ninja-build" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ninja-build+unsubscribe@googlegroups.com.
On 5/23/2013 1:15 PM, Nico Weber wrote:So, what is wrong with the paths? I guess ninja can not handle / and expects a \?
Here's a gyp file for the same project. Running your steps, except with
`gyp -f ninja --depth .` instead of cmake, things seem to work.
It sounds like cmake needs to change cmcldeps to produce nicer paths, or
use ninja -t msvc (or maybe use the new deps=msvs stuff if they're
adventurous).
$ cat CMakeFiles/foo.dir/foo.cpp.obj.d...
CMakeFiles\foo.dir\foo.cpp.obj: \
C:/PROGRA~2/MICROS~3.0/VC/include/ConcurrencySal.h \
C:/PROGRA~2/MICROS~3.0/VC/include/vadefs.h \
D:/src/ninja/gen_header/build/header.h \
vsI am pretty sure the CMake stuff worked at some point. Was there a change in ninja? Longer term we do want to get to -t msvc, but I want to figure out what changed and how to fix it.
c:\progra~2\micros~3.0\vc\include\crtdefs.h
... snip
header.h
Thanks.
-Bill
--
You received this message because you are subscribed to the Google Groups "ninja-build" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ninja-build+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "ninja-build" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ninja-build+unsubscribe@googlegroups.com.