summaryrefslogtreecommitdiffstats
path: root/third_party/google_input_tools/builder.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/google_input_tools/builder.py')
-rwxr-xr-xthird_party/google_input_tools/builder.py25
1 files changed, 17 insertions, 8 deletions
diff --git a/third_party/google_input_tools/builder.py b/third_party/google_input_tools/builder.py
index 7787380..0048012 100755
--- a/third_party/google_input_tools/builder.py
+++ b/third_party/google_input_tools/builder.py
@@ -13,6 +13,11 @@ _BASE_REGEX_STRING = '^\s*goog\.%s\(\s*[\'"](.+)[\'"]\s*\)'
require_regex = re.compile(_BASE_REGEX_STRING % 'require')
provide_regex = re.compile(_BASE_REGEX_STRING % 'provide')
+base = os.path.join('third_party',
+ 'closure_library',
+ 'closure',
+ 'goog',
+ 'base.js')
def ProcessFile(filename):
"""Extracts provided and required namespaces.
@@ -94,8 +99,9 @@ def Export(target_file, source_filename, providers, requirements, processed):
if dependency:
Export(target_file, dependency, providers, requirements, processed)
- # Export file
processed.add(source_filename)
+
+ # Export file
for name in providers:
if providers[name] == source_filename:
target_file.write('// %s%s' % (name, os.linesep))
@@ -103,9 +109,8 @@ def Export(target_file, source_filename, providers, requirements, processed):
try:
comment_block = False
for line in source_file:
- # Skip require and provide statements.
- if (not re.match(require_regex, line) and not
- re.match(provide_regex, line)):
+ # Skip require statements.
+ if (not re.match(require_regex, line)):
formatted = line.rstrip()
if comment_block:
# Scan for trailing */ in multi-line comment.
@@ -115,10 +120,9 @@ def Export(target_file, source_filename, providers, requirements, processed):
comment_block = False
else:
formatted = ''
- # Remove // style comments.
- index = formatted.find('//')
- if index >= 0:
- formatted = formatted[:index]
+ # Remove full-line // style comments.
+ if formatted.lstrip().startswith('//'):
+ formatted = '';
# Remove /* */ style comments.
start_comment = formatted.find('/*')
end_comment = formatted.find('*/')
@@ -190,7 +194,12 @@ def main():
ExtractDependencies(file, providers, requirements)
with open(options.target[0], 'w') as target_file:
+ target_file.write('var CLOSURE_NO_DEPS=true;%s' % os.linesep)
processed = set()
+ base_path = base
+ if options.path:
+ base_path = os.path.join(options.path, base_path)
+ Export(target_file, base_path, providers, requirements, processed)
for source_filename in sources:
Export(target_file, source_filename, providers, requirements, processed)