comparison mxtool/mx.py @ 5712:dfcb73ac6ba2

made invalid javadoc cause a JDT error switched to using -XDignore.symbol.file flag to suppress internal API warnings emitted by javac and javadoc
author Doug Simon <doug.simon@oracle.com>
date Thu, 28 Jun 2012 11:30:21 +0200
parents 8d31a849ca97
children b30cced39597
comparison
equal deleted inserted replaced
5711:4d7175cf3526 5712:dfcb73ac6ba2
1246 argfile.close() 1246 argfile.close()
1247 1247
1248 try: 1248 try:
1249 if jdtJar is None: 1249 if jdtJar is None:
1250 log('Compiling Java sources for {0} with javac...'.format(p.name)) 1250 log('Compiling Java sources for {0} with javac...'.format(p.name))
1251 errFilt = None 1251 javacCmd = [java().javac, '-g', '-J-Xmx1g', '-source', args.compliance, '-classpath', cp, '-d', outputDir, '@' + argfile.name]
1252 if not args.warnAPI: 1252 if not args.warnAPI:
1253 class Filter: 1253 javacCmd.append('-XDignore.symbol.file')
1254 """ 1254 run(javacCmd)
1255 Class to errFilt the 'is Sun proprietary API and may be removed in a future release'
1256 warning when compiling the VM classes.
1257
1258 """
1259 def __init__(self):
1260 self.c = 0
1261
1262 def eat(self, line):
1263 if 'proprietary API' in line:
1264 self.c = 2
1265 elif self.c != 0:
1266 self.c -= 1
1267 else:
1268 log(line.rstrip())
1269 errFilt=Filter().eat
1270
1271 run([java().javac, '-g', '-J-Xmx1g', '-source', args.compliance, '-classpath', cp, '-d', outputDir, '@' + argfile.name], err=errFilt)
1272 else: 1255 else:
1273 log('Compiling Java sources for {0} with JDT...'.format(p.name)) 1256 log('Compiling Java sources for {0} with JDT...'.format(p.name))
1274 jdtArgs = [java().java, '-Xmx1g', '-jar', jdtJar, 1257 jdtArgs = [java().java, '-Xmx1g', '-jar', jdtJar,
1275 '-' + args.compliance, 1258 '-' + args.compliance,
1276 '-cp', cp, '-g', '-enableJavadoc', 1259 '-cp', cp, '-g', '-enableJavadoc',
1963 parser = ArgumentParser(prog='mx javadoc') if parser is None else parser 1946 parser = ArgumentParser(prog='mx javadoc') if parser is None else parser
1964 parser.add_argument('-d', '--base', action='store', help='base directory for output') 1947 parser.add_argument('-d', '--base', action='store', help='base directory for output')
1965 parser.add_argument('--unified', action='store_true', help='put javadoc in a single directory instead of one per project') 1948 parser.add_argument('--unified', action='store_true', help='put javadoc in a single directory instead of one per project')
1966 parser.add_argument('--force', action='store_true', help='(re)generate javadoc even if package-list file exists') 1949 parser.add_argument('--force', action='store_true', help='(re)generate javadoc even if package-list file exists')
1967 parser.add_argument('--projects', action='store', help='comma separated projects to process (omit to process all projects)') 1950 parser.add_argument('--projects', action='store', help='comma separated projects to process (omit to process all projects)')
1951 parser.add_argument('--Wapi', action='store_true', dest='warnAPI', help='show warnings about using internal APIs')
1968 parser.add_argument('--argfile', action='store', help='name of file containing extra javadoc options') 1952 parser.add_argument('--argfile', action='store', help='name of file containing extra javadoc options')
1969 parser.add_argument('--arg', action='append', dest='extra_args', help='extra Javadoc arguments (e.g. --arg @-use)', metavar='@<arg>', default=[]) 1953 parser.add_argument('--arg', action='append', dest='extra_args', help='extra Javadoc arguments (e.g. --arg @-use)', metavar='@<arg>', default=[])
1970 parser.add_argument('-m', '--memory', action='store', help='-Xmx value to pass to underlying JVM') 1954 parser.add_argument('-m', '--memory', action='store', help='-Xmx value to pass to underlying JVM')
1971 parser.add_argument('--packages', action='store', help='comma separated packages to process (omit to process all packages)') 1955 parser.add_argument('--packages', action='store', help='comma separated packages to process (omit to process all packages)')
1972 1956
2043 sp = os.pathsep.join(p.source_dirs()) 2027 sp = os.pathsep.join(p.source_dirs())
2044 overviewFile = join(p.dir, 'overview.html') 2028 overviewFile = join(p.dir, 'overview.html')
2045 overview = [] 2029 overview = []
2046 if exists(overviewFile): 2030 if exists(overviewFile):
2047 overview = ['-overview', overviewFile] 2031 overview = ['-overview', overviewFile]
2032 nowarnAPI = []
2033 if not args.warnAPI:
2034 nowarnAPI.append('-XDignore.symbol.file')
2048 log('Generating {2} for {0} in {1}'.format(p.name, out, docDir)) 2035 log('Generating {2} for {0} in {1}'.format(p.name, out, docDir))
2049 run([java().javadoc, memory, 2036 run([java().javadoc, memory,
2050 '-windowtitle', p.name + ' javadoc', 2037 '-windowtitle', p.name + ' javadoc',
2038 '-XDignore.symbol.file',
2051 '-classpath', cp, 2039 '-classpath', cp,
2052 '-quiet', 2040 '-quiet',
2053 '-d', out, 2041 '-d', out,
2054 '-sourcepath', sp] + 2042 '-sourcepath', sp] +
2055 links + 2043 links +
2056 extraArgs + 2044 extraArgs +
2057 overview + 2045 overview +
2046 nowarnAPI +
2058 list(pkgs)) 2047 list(pkgs))
2059 log('Generated {2} for {0} in {1}'.format(p.name, out, docDir)) 2048 log('Generated {2} for {0} in {1}'.format(p.name, out, docDir))
2060 else: 2049 else:
2061 # The projects must be built to ensure javadoc can find class files for all referenced classes 2050 # The projects must be built to ensure javadoc can find class files for all referenced classes
2062 build(['--no-native']) 2051 build(['--no-native'])
2073 out = join(_mainSuite.dir, docDir) 2062 out = join(_mainSuite.dir, docDir)
2074 if args.base is not None: 2063 if args.base is not None:
2075 out = join(args.base, docDir) 2064 out = join(args.base, docDir)
2076 cp = classpath() 2065 cp = classpath()
2077 sp = os.pathsep.join(sp) 2066 sp = os.pathsep.join(sp)
2067 nowarnAPI = []
2068 if not args.warnAPI:
2069 nowarnAPI.append('-XDignore.symbol.file')
2078 log('Generating {2} for {0} in {1}'.format(', '.join(names), out, docDir)) 2070 log('Generating {2} for {0} in {1}'.format(', '.join(names), out, docDir))
2079 run([java().javadoc, memory, '-classpath', cp, '-quiet', '-d', out, '-sourcepath', sp] + links + extraArgs + list(pkgs)) 2071 run([java().javadoc, memory,
2072 '-classpath', cp,
2073 '-quiet',
2074 '-d', out,
2075 '-sourcepath', sp] +
2076 links +
2077 extraArgs +
2078 nowarnAPI +
2079 list(pkgs))
2080 log('Generated {2} for {0} in {1}'.format(', '.join(names), out, docDir)) 2080 log('Generated {2} for {0} in {1}'.format(', '.join(names), out, docDir))
2081 2081
2082 def findclass(args): 2082 def findclass(args):
2083 """find all classes matching a given substring""" 2083 """find all classes matching a given substring"""
2084 2084