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

Side by Side Diff: documentation/get_docs_files.py

Issue 353017: Change build to only have one place to list... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/o3d/
Patch Set: Created 11 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « documentation/documentation.gyp ('k') | plugin/idl_list.manifest » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2009 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2009 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Helper script to generate file lists for documentation.gyp.""" 6 """Helper script to generate file lists for documentation.gyp."""
7 7
8 import os 8 import os
9 import sys 9 import sys
10 import types 10 import types
11 11
12 12
13 GlobalsDict = { }
14
15
16 def UpdateGlobals(dict):
17 """Copies pairs from dict into GlobalDict."""
18 for i, v in dict.items():
19 GlobalsDict.__setitem__(i, v)
20
21
22 def AppendBasePath(folder, filenames): 13 def AppendBasePath(folder, filenames):
23 """Appends a base path to a ist of files""" 14 """Appends a base path to a ist of files"""
24 return [os.path.join(folder, filename) for filename in filenames] 15 return [os.path.join(folder, filename) for filename in filenames]
25 16
26 17
27 def GetCallingNamespaces():
28 """Return the locals and globals for the function that called
29 into this module in the current call stack."""
30 try: 1/0
31 except ZeroDivisionError:
32 # Don't start iterating with the current stack-frame to
33 # prevent creating reference cycles (f_back is safe).
34 frame = sys.exc_info()[2].tb_frame.f_back
35
36 # Find the first frame that *isn't* from this file
37 while frame.f_globals.get("__name__") == __name__:
38 frame = frame.f_back
39
40 return frame.f_locals, frame.f_globals
41
42
43 def ComputeExports(exports):
44 """Compute a dictionary of exports given one of the parameters
45 to the Export() function or the exports argument to SConscript()."""
46
47 loc, glob = GetCallingNamespaces()
48
49 retval = {}
50 try:
51 for export in exports:
52 if isinstance(export, types.DictType):
53 retval.update(export)
54 else:
55 try:
56 retval[export] = loc[export]
57 except KeyError:
58 retval[export] = glob[export]
59 except KeyError, x:
60 raise Error, "Export of non-existent variable '%s'"%x
61
62 return retval
63
64
65 def Export(*vars):
66 """Copies the named variables to GlobalDict."""
67 for var in vars:
68 UpdateGlobals(ComputeExports(vars))
69
70
71 def Import(filename):
72 """Imports a python file in a scope with 'Export' defined."""
73 scope = {'__builtins__': globals()['__builtins__'],
74 'Export': Export}
75 file = open(filename, 'r')
76 exec file in scope
77 file.close()
78
79
80 def GetIdlFiles(): 18 def GetIdlFiles():
81 idl_list_filename = os.path.join('..', 'plugin', 'idl_list.manifest') 19 idl_list_filename = os.path.join('..', 'plugin', 'idl_list.manifest')
82 idl_list_basepath = os.path.dirname(idl_list_filename) 20 idl_list_basepath = os.path.dirname(idl_list_filename)
83 Import(idl_list_filename) 21 files = eval(open(idl_list_filename, "r").read())
84 idl_files = AppendBasePath(idl_list_basepath, GlobalsDict['O3D_IDL_SOURCES']) 22 idl_files = AppendBasePath(idl_list_basepath, files)
85 return idl_files 23 return idl_files
86 24
87 25
88 def GetJsFiles(): 26 def GetJsFiles():
89 js_list_filename = os.path.join('..', 'samples', 'o3djs', 'js_list.manifest') 27 js_list_filename = os.path.join('..', 'samples', 'o3djs', 'js_list.manifest')
90 js_list_basepath = os.path.dirname(js_list_filename) 28 js_list_basepath = os.path.dirname(js_list_filename)
91 Import(js_list_filename) 29 files = eval(open(js_list_filename, "r").read())
92 o3djs_files = AppendBasePath(js_list_basepath, GlobalsDict['O3D_JS_SOURCES']) 30 o3djs_files = AppendBasePath(js_list_basepath, files)
93 return o3djs_files 31 return o3djs_files
94 32
95 33
96 # Read in the manifest files (which are just really simple python files), 34 # Read in the manifest files (which are just really simple python files),
97 # and scrape out the file lists. 35 # and scrape out the file lists.
98 # TODO(gspencer): Since we no longer use the scons build, we should 36 # TODO(gspencer): Since we no longer use the scons build, we should
99 # rework this so that the lists are just python lists so we can just 37 # rework this so that the lists are just python lists so we can just
100 # do a simple eval instead of having to emulate scons import. 38 # do a simple eval instead of having to emulate scons import.
101 def main(argv): 39 def main(argv):
102 files = [] 40 files = []
103 if argv[0] == '--js': 41 if argv[0] == '--js':
104 files = GetJsFiles() 42 files = GetJsFiles()
105 if argv[0] == '--idl': 43 if argv[0] == '--idl':
106 files = GetIdlFiles() 44 files = GetIdlFiles()
107 files.sort() 45 files.sort()
108 for file in files: 46 for file in files:
109 # gyp wants paths with slashes, not backslashes. 47 # gyp wants paths with slashes, not backslashes.
110 print file.replace("\\", "/") 48 print file.replace("\\", "/")
111 49
112 50
113 if __name__ == "__main__": 51 if __name__ == "__main__":
114 main(sys.argv[1:]) 52 main(sys.argv[1:])
OLDNEW
« no previous file with comments | « documentation/documentation.gyp ('k') | plugin/idl_list.manifest » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698