afrolov / gyp

Automatically exported from code.google.com/p/gyp
0 stars 0 forks source link

Split actions/rules with process_outputs_as_sources=1 as _prebuild project for MSVC #42

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Set 'process_outputs_as_sources': 1 in an action as done in 
http://src.chromium.org/viewvc/chrome/trunk/src/webkit/webkit.gyp
2. See MSVC chocking on dependency processing for incremental build.

What is the expected output? What do you see instead?
MSVC200x doesn't support updating the dependency tree while processing a single 
project. The dependency tree is only updated after processing a whole project. 
So generated sources must be in a separate project from the steps that generate 
the said sources to have the dependency scanning done properly. This makes 
process_outputs_as_sources effectively broken and useless and should be removed 
accordingly. webkit.gyp and installer.gyp need to be updated to not use this 
flag anymore and support for this flag must be removed until we drop support 
for 
vcproj exports.

Original issue reported on code.google.com by maruel@chromium.org on 8 Jul 2009 at 3:10

GoogleCodeExporter commented 9 years ago
We don't necessarily need to get rid of process_outputs_as_sources.  The MSVS 
generator could automatically generate an auxiliary dependency target for rules 
and 
actions that runs the scripts, and the outputs (when process_outputs_as_sources 
is 
true) could be compiled in the main target.

Original comment by mark@chromium.org on 8 Jul 2009 at 3:18

GoogleCodeExporter commented 9 years ago
You are right.

So my proposal (since I can't rename the title)

- For every action and rules that have 'process_outputs_as_sources': 1,
- On MSVC only,
- Generate a '$(project)_prebuild.vcproj' that contains those steps, depends on 
the same 
dependencies than $(project).
- Have $(project)dependends on '$(project)_prebuild'.

Original comment by maruel@chromium.org on 9 Jul 2009 at 2:23

GoogleCodeExporter commented 9 years ago

Original comment by maruel@chromium.org on 9 Jul 2009 at 7:14

GoogleCodeExporter commented 9 years ago

Original comment by sgk@chromium.org on 6 Aug 2009 at 6:33

GoogleCodeExporter commented 9 years ago

Original comment by sgk@chromium.org on 18 Aug 2009 at 8:06

GoogleCodeExporter commented 9 years ago
He accepted but forgot to make himself owner

Original comment by maruel@chromium.org on 19 Oct 2009 at 5:38

GoogleCodeExporter commented 9 years ago
No, I didn't forget.  Taking my name back off.

The "process" (if you want to dignify it) that bradnelson and I were following 
was to 
move items to Accepted to indicate it at least got a cursory project-level 
triage 
(bradnelson and I going through the new issues) and that the Priority and 
keywords 
are sane.  A name attached is what does or doesn't indicate a specific 
individual has 
intends to work on it.

That's not set in stone, it's just what we started doing the couple of times we 
went 
down the list.

Original comment by sgk@chromium.org on 17 Nov 2009 at 1:16

GoogleCodeExporter commented 9 years ago
We did this for Xcode in r762. It worked. We ought to fix it for MSVS too.

Original comment by mark@chromium.org on 25 Jun 2010 at 9:01