Closed GoogleCodeExporter closed 9 years ago
I suppose the expedient fix is to change untrusted.gypi in Chromium/NaCl to
explicitly specify <(SHARED_INTERMEDIATE_DIR)/filename.txt, instead of just
filename.txt.
Still, it seems rather bad that the default mode of operation for <|(...) is to
dump files in the source tree.
The difficulty with fixing this is that this is handled in input.py, which
doesn't know anything about output directories. Hrm.
Original comment by viettrun...@chromium.org
on 3 Jan 2013 at 7:29
Ugh, I'm totally wrong, and things are even more busted than I thought.
The problem is that we're running commands and producing output while loading
the .gyp file. Obviously, you can't produce output at that stage into a build
output directory, since a) the build output directory depends on the generator,
b) the build output directory probably doesn't exist yet, c) the build output
directory will be created by the build tool (e.g., ninja or make) and depends
on, e.g., the build configuration (which can be specified at build time).
The design of <|(...) (etc.) is basically broken. It leads to strange things to
files in 'inputs' lists that don't exist and aren't explicitly created by
anything (e.g., it's not in any 'outputs' list), but are only implicitly
created by (e.g.) the action itself when gyp is run.
Probably, file lists should:
a) be anonymous (i.e., you don't get to specified a name for a file list),
b) inputs/dependencies should only be on the sources (i.e., contents of the
file lists),
c) be produced at build time (with appropriate build rules/dependencies to
produce the file list file and insert its name into an action produced by the
generator).
Original comment by viettrun...@chromium.org
on 3 Jan 2013 at 9:28
This also causes unnecessary rebuilds on the Chromium bots: when "gclient
revert" is run, it removes all .gypcmd files, which cause all dependent targets
to be rebuilt. See
http://build.chromium.org/p/chromium.mac/builders/Mac%20Builder%20%28dbg%29/buil
ds/52954/steps/compile/logs/stdio for an example.
Original comment by binji@chromium.org
on 18 Sep 2013 at 9:16
See also https://code.google.com/p/chromium/issues/detail?id=297186
Original comment by thakis@chromium.org
on 8 Oct 2013 at 3:34
https://codereview.chromium.org/27418008/
Original comment by thakis@chromium.org
on 16 Oct 2013 at 10:36
Original comment by thakis@chromium.org
on 16 Oct 2013 at 10:42
Fixed for ninja, which I declare as Good Enough.
Original comment by thakis@chromium.org
on 17 Oct 2013 at 1:18
Original issue reported on code.google.com by
viettrun...@chromium.org
on 3 Jan 2013 at 7:03