Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(93)

Unified Diff: pylib/gyp/generator/msvs.py

Issue 7576020: Verify the existence of source files in VS2008. Missing source files are now treated as errors. (Closed) Base URL: http://gyp.googlecode.com/svn/trunk/
Patch Set: '' Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pylib/gyp/generator/msvs.py
===================================================================
--- pylib/gyp/generator/msvs.py (revision 984)
+++ pylib/gyp/generator/msvs.py (working copy)
@@ -878,6 +878,7 @@
spec, options, gyp_dir, sources, excluded_sources))
# Add in files.
+ _VerifySourcesExist(sources, gyp_dir)
p.AddFiles(sources)
_AddToolFilesToMSVS(p, spec)
@@ -2606,15 +2607,35 @@
return formatted_value
-def _GetMSBuildSources(spec, root_dir, sources, exclusions,
- extension_to_rule_name, actions_spec,
- sources_handled_by_action):
+def _VerifySourcesExist(sources, root_dir):
+ """Verifies that all source files exist on disk.
+
+ Checks that all regular source files, i.e. not created at run time,
+ exist on disk. Missing files cause needless recompilation but no otherwise
+ visible errors.
+
+ Arguments:
+ sources: A recursive list of Filter/file names.
+ root_dir: The root directory for the relative path names.
+ """
+ for source in sources:
+ if isinstance(source, MSVSProject.Filter):
+ _VerifySourcesExist(source.contents, root_dir)
+ else:
+ if '$' not in source:
+ full_path = os.path.join(root_dir, source)
+ if not os.path.exists(full_path):
+ print 'Error: Missing input file ' + full_path
+
+
+def _GetMSBuildSources(spec, sources, exclusions, extension_to_rule_name,
+ actions_spec, sources_handled_by_action):
groups = ['none', 'midl', 'include', 'compile', 'resource', 'rule']
grouped_sources = {}
for g in groups:
grouped_sources[g] = []
- _AddSources2(spec, root_dir, sources, exclusions, grouped_sources,
+ _AddSources2(spec, sources, exclusions, grouped_sources,
extension_to_rule_name, sources_handled_by_action)
sources = []
for g in groups:
@@ -2625,20 +2646,13 @@
return sources
-def _AddSources2(spec, root_dir, sources, exclusions, grouped_sources,
+def _AddSources2(spec, sources, exclusions, grouped_sources,
extension_to_rule_name, sources_handled_by_action):
for source in sources:
if isinstance(source, MSVSProject.Filter):
- _AddSources2(spec, root_dir, source.contents, exclusions, grouped_sources,
+ _AddSources2(spec, source.contents, exclusions, grouped_sources,
extension_to_rule_name, sources_handled_by_action)
else:
- # If it is a regular source file, i.e. not created at run time,
- # warn if it does not exists. Missing header files will cause needless
- # recompilation but no otherwise visible errors.
- if '$' not in source:
- full_path = os.path.join(root_dir, source)
- if not os.path.exists(full_path):
- print 'Warning: Missing input file ' + full_path
if not source in sources_handled_by_action:
detail = []
excluded_configurations = exclusions.get(source, [])
@@ -2725,6 +2739,7 @@
_GenerateMSBuildFiltersFile(project.path + '.filters', sources,
extension_to_rule_name)
+ _VerifySourcesExist(sources, gyp_dir)
for (_, configuration) in configurations.iteritems():
_FinalizeMSBuildSettings(spec, configuration)
@@ -2758,7 +2773,7 @@
project.build_file)
content += _GetMSBuildToolSettingsSections(spec, configurations)
content += _GetMSBuildSources(
- spec, gyp_dir, sources, exclusions, extension_to_rule_name, actions_spec,
+ spec, sources, exclusions, extension_to_rule_name, actions_spec,
sources_handled_by_action)
content += _GetMSBuildProjectReferences(project)
content += import_cpp_targets_section
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698