Mercurial > hg > truffle
comparison mx/commands.py @ 5704:0a249ed5566a
Merge
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Wed, 27 Jun 2012 14:15:32 +0200 |
parents | 12a34d1bcaa2 |
children | 6f2ccb483d96 |
comparison
equal
deleted
inserted
replaced
5703:05c5f68e23d5 | 5704:0a249ed5566a |
---|---|
999 out = args[0] | 999 out = args[0] |
1000 elif len(args) > 1: | 1000 elif len(args) > 1: |
1001 mx.abort('jacocoreport takes only one argument : an output directory') | 1001 mx.abort('jacocoreport takes only one argument : an output directory') |
1002 mx.run_java(['-jar', jacocoreport.get_path(True), '-in', 'jacoco.exec', '-g', join(_graal_home, 'graal'), out]) | 1002 mx.run_java(['-jar', jacocoreport.get_path(True), '-in', 'jacoco.exec', '-g', join(_graal_home, 'graal'), out]) |
1003 | 1003 |
1004 def site(args): | |
1005 """creates a website containing javadoc and the project dependency graph""" | |
1006 | |
1007 parser = ArgumentParser(prog='site') | |
1008 parser.add_argument('-d', '--base', action='store', help='directory for generated site', required=True, metavar='<dir>') | |
1009 parser.add_argument('-c', '--clean', action='store_true', help='remove existing site in <dir>') | |
1010 | |
1011 args = parser.parse_args(args) | |
1012 | |
1013 args.base = os.path.abspath(args.base) | |
1014 | |
1015 if not exists(args.base): | |
1016 os.mkdir(args.base) | |
1017 elif args.clean: | |
1018 shutil.rmtree(args.base) | |
1019 os.mkdir(args.base) | |
1020 | |
1021 mx.javadoc(['--base', args.base]) | |
1022 | |
1023 unified = join(args.base, 'all') | |
1024 if exists(unified): | |
1025 shutil.rmtree(unified) | |
1026 mx.javadoc(['--base', args.base, '--unified', '--arg', '@-overview', '--arg', '@' + join(_graal_home, 'graal', 'overview.html')]) | |
1027 os.rename(join(args.base, 'javadoc'), unified) | |
1028 | |
1029 _, tmp = tempfile.mkstemp() | |
1030 try: | |
1031 svg = join(args.base, 'all', 'modules.svg') | |
1032 with open(tmp, 'w') as fp: | |
1033 print >> fp, 'digraph projects {' | |
1034 print >> fp, 'rankdir=BT;' | |
1035 print >> fp, 'size = "13,13";' | |
1036 print >> fp, 'node [shape=rect, fontcolor="blue"];' | |
1037 print >> fp, 'edge [color="green"];' | |
1038 for p in mx.projects(): | |
1039 print >> fp, '"' + p.name + '" [URL = "../' + p.name + '/javadoc/index.html", target = "_top"]' | |
1040 for dep in p.canonical_deps(): | |
1041 if mx.project(dep, False): | |
1042 print >> fp, '"' + p.name + '" -> "' + dep + '"' | |
1043 depths = dict() | |
1044 for p in mx.projects(): | |
1045 d = p.max_depth() | |
1046 depths.setdefault(d, list()).append(p.name) | |
1047 for d, names in depths.iteritems(): | |
1048 print >> fp, '{ rank = same; "' + '"; "'.join(names) + '"; }' | |
1049 print >> fp, '}' | |
1050 | |
1051 mx.run(['dot', '-Tsvg', '-o' + svg, tmp]) | |
1052 | |
1053 # Post-process generated SVG to remove unified title elements which most browsers | |
1054 # render as redundant (and annoying) tooltips. | |
1055 with open(svg, 'r') as fp: | |
1056 content = fp.read() | |
1057 content = re.sub('<title>.*</title>', '', content) | |
1058 content = re.sub('xlink:title="[^"]*"', '', content) | |
1059 with open(svg, 'w') as fp: | |
1060 fp.write(content) | |
1061 | |
1062 print 'Created website - root is ' + join(unified, 'index.html') | |
1063 finally: | |
1064 os.remove(tmp) | |
1065 | |
1004 def mx_init(): | 1066 def mx_init(): |
1005 _vmbuild = 'product' | 1067 _vmbuild = 'product' |
1006 commands = { | 1068 commands = { |
1007 'build': [build, '[-options]'], | 1069 'build': [build, '[-options]'], |
1008 'buildvms': [buildvms, '[-options]'], | 1070 'buildvms': [buildvms, '[-options]'], |
1020 'gv' : [gv, ''], | 1082 'gv' : [gv, ''], |
1021 'bench' : [bench, '[-resultfile file] [all(default)|dacapo|specjvm2008|bootstrap]'], | 1083 'bench' : [bench, '[-resultfile file] [all(default)|dacapo|specjvm2008|bootstrap]'], |
1022 'unittest' : [unittest, '[filters...]'], | 1084 'unittest' : [unittest, '[filters...]'], |
1023 'jtt' : [jtt, '[filters...]'], | 1085 'jtt' : [jtt, '[filters...]'], |
1024 'jacocoreport' : [jacocoreport, '[output directory]'], | 1086 'jacocoreport' : [jacocoreport, '[output directory]'], |
1087 'site' : [site, '[-options]'], | |
1025 'vm': [vm, '[-options] class [args...]'], | 1088 'vm': [vm, '[-options] class [args...]'], |
1026 'vmg': [vmg, '[-options] class [args...]'], | 1089 'vmg': [vmg, '[-options] class [args...]'], |
1027 'vmfg': [vmfg, '[-options] class [args...]'] | 1090 'vmfg': [vmfg, '[-options] class [args...]'] |
1028 } | 1091 } |
1029 | 1092 |