annotate python/zcc.py @ 397:5d03c10fe19d

Small changes
author Windel Bouwman
date Thu, 29 May 2014 10:47:28 +0200
parents 6ae782a085e0
children
rev   line source
292
534b94b40aa8 Fixup reorganize
Windel Bouwman
parents: 290
diff changeset
1 #!/usr/bin/env python
104
ed230e947dc6 Added hexviewer
windel
parents:
diff changeset
2
287
1c7c1e619be8 File movage
Windel Bouwman
parents: 281
diff changeset
3 import sys
1c7c1e619be8 File movage
Windel Bouwman
parents: 281
diff changeset
4 import argparse
1c7c1e619be8 File movage
Windel Bouwman
parents: 281
diff changeset
5 import logging
1c7c1e619be8 File movage
Windel Bouwman
parents: 281
diff changeset
6
331
a78b41ff6ad2 Added better recipe files
Windel Bouwman
parents: 329
diff changeset
7 from ppci.report import RstFormatter
393
6ae782a085e0 Added init program
Windel Bouwman
parents: 381
diff changeset
8 from ppci.buildfunctions import construct
6ae782a085e0 Added init program
Windel Bouwman
parents: 381
diff changeset
9 import ppci.buildtasks # Include not used, but it registers build tasks.
331
a78b41ff6ad2 Added better recipe files
Windel Bouwman
parents: 329
diff changeset
10 import ppci
281
4496cae24d7f Improved logview
Windel Bouwman
parents: 276
diff changeset
11
289
bd2593de3ff8 Semifix burn2
Windel Bouwman
parents: 288
diff changeset
12
253
74c6a20302d5 Added better logging
Windel Bouwman
parents: 252
diff changeset
13 def logLevel(s):
312
2c9768114877 Added cool logging formatter
Windel Bouwman
parents: 311
diff changeset
14 """ Converts a string to a valid logging level """
253
74c6a20302d5 Added better logging
Windel Bouwman
parents: 252
diff changeset
15 numeric_level = getattr(logging, s.upper(), None)
74c6a20302d5 Added better logging
Windel Bouwman
parents: 252
diff changeset
16 if not isinstance(numeric_level, int):
74c6a20302d5 Added better logging
Windel Bouwman
parents: 252
diff changeset
17 raise ValueError('Invalid log level: {}'.format(s))
74c6a20302d5 Added better logging
Windel Bouwman
parents: 252
diff changeset
18 return numeric_level
105
6a303f835c6d Removed compilers directory
Windel Bouwman
parents: 104
diff changeset
19
289
bd2593de3ff8 Semifix burn2
Windel Bouwman
parents: 288
diff changeset
20
331
a78b41ff6ad2 Added better recipe files
Windel Bouwman
parents: 329
diff changeset
21 def make_parser():
a78b41ff6ad2 Added better recipe files
Windel Bouwman
parents: 329
diff changeset
22 parser = argparse.ArgumentParser(description='lcfos Compiler')
a78b41ff6ad2 Added better recipe files
Windel Bouwman
parents: 329
diff changeset
23
a78b41ff6ad2 Added better recipe files
Windel Bouwman
parents: 329
diff changeset
24 parser.add_argument('--log', help='Log level (INFO,DEBUG,[WARN])',
334
6f4753202b9a Added more recipes
Windel Bouwman
parents: 332
diff changeset
25 type=logLevel, default='INFO')
348
442fb043d149 Added log option to zcc
Windel Bouwman
parents: 342
diff changeset
26 parser.add_argument('--report',
442fb043d149 Added log option to zcc
Windel Bouwman
parents: 342
diff changeset
27 help='Specify a file to write the compile report to',
442fb043d149 Added log option to zcc
Windel Bouwman
parents: 342
diff changeset
28 type=argparse.FileType('w'))
377
9667d78ba79e Switched to xml for project description
Windel Bouwman
parents: 366
diff changeset
29 parser.add_argument('--buildfile',
9667d78ba79e Switched to xml for project description
Windel Bouwman
parents: 366
diff changeset
30 help='use buildfile, otherwise build.xml is the default',
9667d78ba79e Switched to xml for project description
Windel Bouwman
parents: 366
diff changeset
31 default='build.xml')
331
a78b41ff6ad2 Added better recipe files
Windel Bouwman
parents: 329
diff changeset
32
377
9667d78ba79e Switched to xml for project description
Windel Bouwman
parents: 366
diff changeset
33 parser.add_argument('targets', metavar='target', nargs='*')
331
a78b41ff6ad2 Added better recipe files
Windel Bouwman
parents: 329
diff changeset
34 return parser
a78b41ff6ad2 Added better recipe files
Windel Bouwman
parents: 329
diff changeset
35
287
1c7c1e619be8 File movage
Windel Bouwman
parents: 281
diff changeset
36
249
e41e4109addd Added current position arrow
Windel Bouwman
parents: 246
diff changeset
37 def main(args):
315
084cccaa5deb Added console and screen
Windel Bouwman
parents: 314
diff changeset
38 # Configure some logging:
084cccaa5deb Added console and screen
Windel Bouwman
parents: 314
diff changeset
39 logging.getLogger().setLevel(logging.DEBUG)
084cccaa5deb Added console and screen
Windel Bouwman
parents: 314
diff changeset
40 ch = logging.StreamHandler()
331
a78b41ff6ad2 Added better recipe files
Windel Bouwman
parents: 329
diff changeset
41 ch.setFormatter(logging.Formatter(ppci.logformat))
315
084cccaa5deb Added console and screen
Windel Bouwman
parents: 314
diff changeset
42 ch.setLevel(args.log)
084cccaa5deb Added console and screen
Windel Bouwman
parents: 314
diff changeset
43 logging.getLogger().addHandler(ch)
329
8f6f3ace4e78 Added build tasks
Windel Bouwman
parents: 323
diff changeset
44
348
442fb043d149 Added log option to zcc
Windel Bouwman
parents: 342
diff changeset
45 if args.report:
442fb043d149 Added log option to zcc
Windel Bouwman
parents: 342
diff changeset
46 fh = logging.StreamHandler(args.report)
442fb043d149 Added log option to zcc
Windel Bouwman
parents: 342
diff changeset
47 fh.setFormatter(RstFormatter())
442fb043d149 Added log option to zcc
Windel Bouwman
parents: 342
diff changeset
48 logging.getLogger().addHandler(fh)
442fb043d149 Added log option to zcc
Windel Bouwman
parents: 342
diff changeset
49
393
6ae782a085e0 Added init program
Windel Bouwman
parents: 381
diff changeset
50 res = construct(args.buildfile, args.targets)
104
ed230e947dc6 Added hexviewer
windel
parents:
diff changeset
51
348
442fb043d149 Added log option to zcc
Windel Bouwman
parents: 342
diff changeset
52 if args.report:
442fb043d149 Added log option to zcc
Windel Bouwman
parents: 342
diff changeset
53 logging.getLogger().removeHandler(fh)
442fb043d149 Added log option to zcc
Windel Bouwman
parents: 342
diff changeset
54 args.report.close()
442fb043d149 Added log option to zcc
Windel Bouwman
parents: 342
diff changeset
55
315
084cccaa5deb Added console and screen
Windel Bouwman
parents: 314
diff changeset
56 logging.getLogger().removeHandler(ch)
331
a78b41ff6ad2 Added better recipe files
Windel Bouwman
parents: 329
diff changeset
57 return res
246
f254b87258e6 Added hexfile to zcc
Windel Bouwman
parents: 239
diff changeset
58
288
a747a45dcd78 Various styling work
Windel Bouwman
parents: 287
diff changeset
59
207
8b2f20aae086 cleaning of files
Windel Bouwman
parents: 205
diff changeset
60 if __name__ == '__main__':
331
a78b41ff6ad2 Added better recipe files
Windel Bouwman
parents: 329
diff changeset
61 parser = make_parser()
213
003c8a976fff Merge of semantics and parser again ..
Windel Bouwman
parents: 207
diff changeset
62 arguments = parser.parse_args()
276
Windel Bouwman
parents: 272
diff changeset
63 sys.exit(main(arguments))