Index: dart/compiler/generate_systemlibrary_list.py |
diff --git a/dart/compiler/generate_systemlibrary_list.py b/dart/compiler/generate_systemlibrary_list.py |
deleted file mode 100644 |
index 1754436296568d988e02a4a852c36dafa22e33a5..0000000000000000000000000000000000000000 |
--- a/dart/compiler/generate_systemlibrary_list.py |
+++ /dev/null |
@@ -1,122 +0,0 @@ |
-#!/usr/bin/env python |
-# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
-# for details. All rights reserved. Use of this source code is governed by a |
-# BSD-style license that can be found in the LICENSE file. |
- |
-from __future__ import with_statement |
-import StringIO |
-import os |
-import sys |
-import re |
-from collections import deque |
- |
-class GenerateError(Exception): |
- |
- def __init__(self, value): |
- self.value = value |
- |
- def __str__(self): |
- return repr(self.value) |
- |
- |
-class Generator: |
- |
- def __init__(self, base_directory, name, output, path, *includes): |
- self.base_directory = base_directory |
- self.name = name |
- self.output = output |
- self.path = path |
- self.includes = set() |
- for x in includes: |
- self.includes.add(x) |
- self.sources = [] |
- self.resources = [] |
- |
- def _list_files(self): |
- drain = deque() |
- drain.extend(self.includes) |
- while len(drain) > 0: |
- target = drain.popleft() |
- # Avoid circular dependencies |
- if target in self.resources: |
- continue |
- if (target.startswith("dart:")): |
- continue |
- self.resources.append(target) |
- if (target.endswith(".dart")): |
- with open(os.path.join(self.base_directory,self.path,target),"r") as fobj: |
- text = fobj.read() |
- file_sources = re.findall(r"#source\(['\"](?P<name>.*)['\"]\);",text) |
- file_native = re.findall(r"#native\(['\"](?P<name>.*)['\"]\);",text) |
- file_imports = re.findall(r"#import\(['\"](?P<name>.*)['\"]\);",text) |
- self.resources.extend(file_sources) |
- self.resources.extend(file_native) |
- drain.extend(file_imports) |
- self.sources.sort() |
- self.resources.sort() |
- |
- def _print_gypi_files(self, out, name, files): |
- out.write(" '%s': [\n" % name) |
- for filename in files: |
- out.write(" '%s/%s',\n" % (self.path, filename)) |
- out.write(" ],\n") |
- |
- def _print_ant_files(self, out, name, files): |
- out.write(" <filelist id='%s' dir='%s'>\n" % (name, self.path)) |
- for filename in files: |
- out.write(" <file name='%s'/>\n" % filename) |
- out.write(" </filelist>\n") |
- out.write(" <pathconvert pathsep=',' property='%s' refid='%s'>\n" |
- % (name, name)) |
- out.write(" <map from='${basedir}/%s/' to=''/>\n" % self.path) |
- out.write(" </pathconvert>\n") |
- |
- def _make_output(self, file_name): |
- if os.path.exists(file_name): |
- return StringIO.StringIO() |
- else: |
- return file(file_name, 'w') |
- |
- def _close(self, file_name, output): |
- if not isinstance(output, StringIO.StringIO): |
- output.close() |
- return |
- new_text = output.getvalue() |
- output.close() |
- with open(file_name, 'r') as f: |
- old_text = f.read() |
- if old_text == new_text: |
- return |
- sys.stderr.write('Updating %s\n' % file_name) |
- with open(file_name, 'w') as f: |
- f.write(new_text) |
- |
- def generate(self): |
- self._list_files() |
- file_name = self.output + '.gypi'; |
- gypi = self._make_output(file_name) |
- gypi.write("{\n 'variables': {\n") |
- self._print_gypi_files(gypi, self.name + '_sources', self.sources) |
- self._print_gypi_files(gypi, self.name + '_resources', self.resources) |
- gypi.write(" },\n}\n") |
- self._close(file_name, gypi) |
- file_name = self.output + '.xml' |
- ant = self._make_output(file_name) |
- ant.write("<project>\n") |
- self._print_ant_files(ant, self.name + '_sources', self.sources) |
- self._print_ant_files(ant, self.name + '_resources', self.resources) |
- ant.write("</project>\n") |
- self._close(file_name, ant) |
- |
- |
-def Main(script_name = None, name = None, output = None, path = None, |
- *rest): |
- if not path: |
- raise GenerateError("usage: %s NAME OUTPUT PATH EXCLUDE_DIR_NAME ..." |
- % script_name) |
- base_directory = os.path.dirname(output) |
- Generator(base_directory, name, output, path, *rest).generate() |
- |
- |
-if __name__ == '__main__': |
- sys.exit(Main(*sys.argv)) |