comparison mxtool/mx.py @ 14913:2d1cc640512c

Add possibility to build using error-prone instead of javac.
author Gilles Duboscq <duboscq@ssw.jku.at>
date Fri, 28 Mar 2014 10:46:48 +0100
parents 7683ad455d81
children a6bd486b1b44
comparison
equal deleted inserted replaced
14912:898e6a259f67 14913:2d1cc640512c
1124 if java.javaCompliance == requiredCompliance: 1124 if java.javaCompliance == requiredCompliance:
1125 return java 1125 return java
1126 return None 1126 return None
1127 1127
1128 1128
1129 def run_java(args, nonZeroIsFatal=True, out=None, err=None, cwd=None, addDefaultArgs=True): 1129 def run_java(args, nonZeroIsFatal=True, out=None, err=None, cwd=None, addDefaultArgs=True, javaConfig=None):
1130 return run(java().format_cmd(args, addDefaultArgs), nonZeroIsFatal=nonZeroIsFatal, out=out, err=err, cwd=cwd) 1130 if not javaConfig:
1131 javaConfig = java()
1132 return run(javaConfig.format_cmd(args, addDefaultArgs), nonZeroIsFatal=nonZeroIsFatal, out=out, err=err, cwd=cwd)
1131 1133
1132 def _kill_process_group(pid, sig): 1134 def _kill_process_group(pid, sig):
1133 if not sig: 1135 if not sig:
1134 sig = signal.SIGKILL 1136 sig = signal.SIGKILL
1135 pgid = os.getpgid(pid) 1137 pgid = os.getpgid(pid)
1386 self.jar = exe_suffix(join(self.jdk, 'bin', 'jar')) 1388 self.jar = exe_suffix(join(self.jdk, 'bin', 'jar'))
1387 self.java = exe_suffix(join(self.jdk, 'bin', 'java')) 1389 self.java = exe_suffix(join(self.jdk, 'bin', 'java'))
1388 self.javac = exe_suffix(join(self.jdk, 'bin', 'javac')) 1390 self.javac = exe_suffix(join(self.jdk, 'bin', 'javac'))
1389 self.javap = exe_suffix(join(self.jdk, 'bin', 'javap')) 1391 self.javap = exe_suffix(join(self.jdk, 'bin', 'javap'))
1390 self.javadoc = exe_suffix(join(self.jdk, 'bin', 'javadoc')) 1392 self.javadoc = exe_suffix(join(self.jdk, 'bin', 'javadoc'))
1393 self.toolsjar = join(self.jdk, 'lib', 'tools.jar')
1391 self._bootclasspath = None 1394 self._bootclasspath = None
1392 1395
1393 if not exists(self.java): 1396 if not exists(self.java):
1394 abort('Java launcher does not exist: ' + self.java) 1397 abort('Java launcher does not exist: ' + self.java)
1395 1398
1675 parser.add_argument('--no-java', action='store_false', dest='java', help='do not build Java projects') 1678 parser.add_argument('--no-java', action='store_false', dest='java', help='do not build Java projects')
1676 parser.add_argument('--no-native', action='store_false', dest='native', help='do not build native projects') 1679 parser.add_argument('--no-native', action='store_false', dest='native', help='do not build native projects')
1677 parser.add_argument('--force-javac', action='store_true', dest='javac', help='use javac despite ecj.jar is found or not') 1680 parser.add_argument('--force-javac', action='store_true', dest='javac', help='use javac despite ecj.jar is found or not')
1678 parser.add_argument('--jdt', help='path to ecj.jar, the Eclipse batch compiler (default: ' + defaultEcjPath + ')', default=defaultEcjPath, metavar='<path>') 1681 parser.add_argument('--jdt', help='path to ecj.jar, the Eclipse batch compiler (default: ' + defaultEcjPath + ')', default=defaultEcjPath, metavar='<path>')
1679 parser.add_argument('--jdt-warning-as-error', action='store_true', help='convert all Eclipse batch compiler warnings to errors') 1682 parser.add_argument('--jdt-warning-as-error', action='store_true', help='convert all Eclipse batch compiler warnings to errors')
1683 parser.add_argument('--error-prone', dest='error_prone', help='path to error-prone.jar', metavar='<path>')
1680 1684
1681 if suppliedParser: 1685 if suppliedParser:
1682 parser.add_argument('remainder', nargs=REMAINDER, metavar='...') 1686 parser.add_argument('remainder', nargs=REMAINDER, metavar='...')
1683 1687
1684 args = parser.parse_args(args) 1688 args = parser.parse_args(args)
1855 else: 1859 else:
1856 processorArgs += ['-proc:none'] 1860 processorArgs += ['-proc:none']
1857 1861
1858 toBeDeleted = [argfileName] 1862 toBeDeleted = [argfileName]
1859 try: 1863 try:
1860 if jdtJar is None: 1864 if not jdtJar:
1861 log('Compiling Java sources for {0} with javac...'.format(p.name)) 1865 if not args.error_prone:
1862 javacCmd = [jdk.javac, '-g', '-J-Xmx1g', '-source', compliance, '-target', compliance, '-classpath', cp, '-d', outputDir] 1866 log('Compiling Java sources for {0} with javac...'.format(p.name))
1863 if jdk.debug_port is not None: 1867 javacCmd = [jdk.javac, '-g', '-J-Xmx1g', '-source', compliance, '-target', compliance, '-classpath', cp, '-d', outputDir]
1864 javacCmd += ['-J-Xdebug', '-J-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=' + str(jdk.debug_port)] 1868 if jdk.debug_port is not None:
1865 javacCmd += processorArgs 1869 javacCmd += ['-J-Xdebug', '-J-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=' + str(jdk.debug_port)]
1866 javacCmd += ['@' + argfile.name] 1870 javacCmd += processorArgs
1867 1871 javacCmd += ['@' + argfile.name]
1868 if not args.warnAPI: 1872
1869 javacCmd.append('-XDignore.symbol.file') 1873 if not args.warnAPI:
1870 run(javacCmd) 1874 javacCmd.append('-XDignore.symbol.file')
1875 run(javacCmd)
1876 else:
1877 log('Compiling Java sources for {0} with javac (with error-prone)...'.format(p.name))
1878 javaArgs = ['-Xmx1g']
1879 javacArgs = ['-g', '-source', compliance, '-target', compliance, '-classpath', cp, '-d', outputDir]
1880 javacArgs += processorArgs
1881 javacArgs += ['@' + argfile.name]
1882 if not args.warnAPI:
1883 javacArgs.append('-XDignore.symbol.file')
1884 run_java(javaArgs + ['-cp', os.pathsep.join([jdk.toolsjar, args.error_prone]), 'com.google.errorprone.ErrorProneCompiler'] + javacArgs, javaConfig=jdk)
1871 else: 1885 else:
1872 log('Compiling Java sources for {0} with JDT...'.format(p.name)) 1886 log('Compiling Java sources for {0} with JDT...'.format(p.name))
1873 1887
1874 jdtArgs = [jdk.java, '-Xmx1g'] 1888 jdtArgs = [jdk.java, '-Xmx1g']
1875 if jdk.debug_port is not None: 1889 if jdk.debug_port is not None: