/[escript]/branches/RW_WIN32/scons_ext.py
ViewVC logotype

Contents of /branches/RW_WIN32/scons_ext.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 229 - (show annotations)
Fri Nov 25 06:17:13 2005 UTC (14 years, 3 months ago) by robwdcock
File MIME type: text/x-python
File size: 2340 byte(s)
+ Added Options capability
+ All py files are now compiled and installed into lib directory hierarchy
+ scons now reads custom options from custom.py. Examples are in the scons_custom_templates directory, just copy to top level build dir and rename to custom.py
+ scons_ext.py now has some helper functions for building pyc from python and running unit tests (but only when some dependency changes).


1 # Extensions to Scons
2 def build_py(target, source, env):
3 # Code to build .pyc from .py
4 import py_compile, sys;
5 py_compile.compile(str(source[0]), str(target[0]))
6 return None
7
8 def runUnitTest(target, source, env):
9 import os
10 app = str(source[0].abspath)
11 if not os.system(app):
12 open(str(target[0]),'w').write("PASSED\n")
13 return None
14
15 #import fnmatch
16 #import os
17
18 #def Glob( includes = Split( '*' ), excludes = None, dir = '.'):
19 # """Similar to glob.glob, except globs SCons nodes, and thus sees
20 # generated files and files from build directories. Basically, it sees
21 # anything SCons knows about. A key subtlety is that since this function
22 # operates on generated nodes as well as source nodes on the filesystem,
23 # it needs to be called after builders that generate files you want to
24 # include.
25 #
26 # It will return both Dir entries and File entries
27 # """
28 # def fn_filter(node):
29 # fn = os.path.basename(str(node))
30 # match = 0
31 # for include in includes:
32 # if fnmatch.fnmatchcase( fn, include ):
33 # match = 1
34 # break
35 #
36 # if match == 1 and not excludes is None:
37 # for exclude in excludes:
38 # if fnmatch.fnmatchcase( fn, exclude ):
39 # match = 0
40 # break
41 #
42 # return match
43 #
44 # def filter_nodes(where):
45 # children = filter(fn_filter, where.all_children())
46 # nodes = []
47 # for f in children:
48 # nodes.append(gen_node(f))
49 # return nodes
50 #
51 # def gen_node(n):
52 # """Checks first to see if the node is a file or a dir, then
53 # creates the appropriate node. [code seems redundant, if the node
54 # is a node, then shouldn't it just be left as is?
55 # """
56 # if type(n) in (type(''), type(u'')):
57 # path = n
58 # else:
59 # path = n.abspath
60 # if os.path.isdir(path):
61 # return Dir(n)
62 # else:
63 # return File(n)
64 #
65 # here = Dir(dir)
66 # nodes = filter_nodes(here)
67 #
68 # node_srcs = [n.srcnode() for n in nodes]
69 #
70 # src = here.srcnode()
71 # if src is not here:
72 # for s in filter_nodes(src):
73 # if s not in node_srcs:
74 # # Probably need to check if this node is a directory
75 # nodes.append(gen_node(os.path.join(dir,os.path.basename(str(s)))))
76 #
77 # return nodes

  ViewVC Help
Powered by ViewVC 1.1.26