Mercurial > hg > truffle
comparison mxtool/mx.py @ 15892:079229f002a3
Merge with f4510fd9e8b3ad6965b3162b27edb476baa7140d
author | Michael Van De Vanter <michael.van.de.vanter@oracle.com> |
---|---|
date | Sat, 24 May 2014 10:48:18 -0700 |
parents | 11bf5b8973c9 |
children | a5c5b4aa79ca |
comparison
equal
deleted
inserted
replaced
15891:09ac9ac9c4fc | 15892:079229f002a3 |
---|---|
1512 stream.close() | 1512 stream.close() |
1513 stdout = out if not callable(out) else subprocess.PIPE | 1513 stdout = out if not callable(out) else subprocess.PIPE |
1514 stderr = err if not callable(err) else subprocess.PIPE | 1514 stderr = err if not callable(err) else subprocess.PIPE |
1515 p = subprocess.Popen(args, cwd=cwd, stdout=stdout, stderr=stderr, preexec_fn=preexec_fn, creationflags=creationflags, env=env) | 1515 p = subprocess.Popen(args, cwd=cwd, stdout=stdout, stderr=stderr, preexec_fn=preexec_fn, creationflags=creationflags, env=env) |
1516 sub = _addSubprocess(p, args) | 1516 sub = _addSubprocess(p, args) |
1517 joiners = [] | |
1517 if callable(out): | 1518 if callable(out): |
1518 t = Thread(target=redirect, args=(p.stdout, out)) | 1519 t = Thread(target=redirect, args=(p.stdout, out)) |
1519 # Don't make the reader thread a daemon otherwise output can be droppped | 1520 # Don't make the reader thread a daemon otherwise output can be droppped |
1520 t.start() | 1521 t.start() |
1522 joiners.append(t) | |
1521 if callable(err): | 1523 if callable(err): |
1522 t = Thread(target=redirect, args=(p.stderr, err)) | 1524 t = Thread(target=redirect, args=(p.stderr, err)) |
1523 # Don't make the reader thread a daemon otherwise output can be droppped | 1525 # Don't make the reader thread a daemon otherwise output can be droppped |
1524 t.start() | 1526 t.start() |
1527 joiners.append(t) | |
1528 for t in joiners: | |
1529 t.join() | |
1525 if timeout is None or timeout == 0: | 1530 if timeout is None or timeout == 0: |
1526 retcode = waitOn(p) | 1531 retcode = waitOn(p) |
1527 else: | 1532 else: |
1528 if get_os() == 'windows': | 1533 if get_os() == 'windows': |
1529 abort('Use of timeout not (yet) supported on Windows') | 1534 abort('Use of timeout not (yet) supported on Windows') |
1671 self.jar = exe_suffix(join(self.jdk, 'bin', 'jar')) | 1676 self.jar = exe_suffix(join(self.jdk, 'bin', 'jar')) |
1672 self.java = exe_suffix(join(self.jdk, 'bin', 'java')) | 1677 self.java = exe_suffix(join(self.jdk, 'bin', 'java')) |
1673 self.javac = exe_suffix(join(self.jdk, 'bin', 'javac')) | 1678 self.javac = exe_suffix(join(self.jdk, 'bin', 'javac')) |
1674 self.javap = exe_suffix(join(self.jdk, 'bin', 'javap')) | 1679 self.javap = exe_suffix(join(self.jdk, 'bin', 'javap')) |
1675 self.javadoc = exe_suffix(join(self.jdk, 'bin', 'javadoc')) | 1680 self.javadoc = exe_suffix(join(self.jdk, 'bin', 'javadoc')) |
1681 self.pack200 = exe_suffix(join(self.jdk, 'bin', 'pack200')) | |
1676 self.toolsjar = join(self.jdk, 'lib', 'tools.jar') | 1682 self.toolsjar = join(self.jdk, 'lib', 'tools.jar') |
1677 self._bootclasspath = None | 1683 self._bootclasspath = None |
1678 self._extdirs = None | 1684 self._extdirs = None |
1679 self._endorseddirs = None | 1685 self._endorseddirs = None |
1680 | 1686 |
1845 if _opts.killwithsigquit: | 1851 if _opts.killwithsigquit: |
1846 _send_sigquit() | 1852 _send_sigquit() |
1847 | 1853 |
1848 def is_alive(p): | 1854 def is_alive(p): |
1849 if isinstance(p, subprocess.Popen): | 1855 if isinstance(p, subprocess.Popen): |
1850 return p.poll() is not None | 1856 return p.poll() is None |
1851 assert isinstance(p, multiprocessing.Process), p | 1857 assert isinstance(p, multiprocessing.Process), p |
1852 return p.is_alive() | 1858 return p.is_alive() |
1853 | 1859 |
1854 for p, args in _currentSubprocesses: | 1860 for p, args in _currentSubprocesses: |
1855 if is_alive(p): | 1861 if is_alive(p): |
3396 out.open('factorypath') | 3402 out.open('factorypath') |
3397 out.element('factorypathentry', {'kind' : 'PLUGIN', 'id' : 'org.eclipse.jst.ws.annotations.core', 'enabled' : 'true', 'runInBatchMode' : 'false'}) | 3403 out.element('factorypathentry', {'kind' : 'PLUGIN', 'id' : 'org.eclipse.jst.ws.annotations.core', 'enabled' : 'true', 'runInBatchMode' : 'false'}) |
3398 for ap in p.annotation_processors(): | 3404 for ap in p.annotation_processors(): |
3399 for dep in dependency(ap).all_deps([], True): | 3405 for dep in dependency(ap).all_deps([], True): |
3400 if dep.isLibrary(): | 3406 if dep.isLibrary(): |
3401 if not hasattr(dep, 'eclipse.container') and not hasattr(dep, 'eclipse.project'): | 3407 # Relative paths for "lib" class path entries have various semantics depending on the Eclipse |
3402 # Relative paths for "lib" class path entries have various semantics depending on the Eclipse | 3408 # version being used (e.g. see https://bugs.eclipse.org/bugs/show_bug.cgi?id=274737) so it's |
3403 # version being used (e.g. see https://bugs.eclipse.org/bugs/show_bug.cgi?id=274737) so it's | 3409 # safest to simply use absolute paths. |
3404 # safest to simply use absolute paths. | 3410 path = _make_absolute(dep.get_path(resolve=True), p.suite.dir) |
3405 path = _make_absolute(dep.get_path(resolve=True), p.suite.dir) | 3411 out.element('factorypathentry', {'kind' : 'EXTJAR', 'id' : path, 'enabled' : 'true', 'runInBatchMode' : 'false'}) |
3406 out.element('factorypathentry', {'kind' : 'EXTJAR', 'id' : path, 'enabled' : 'true', 'runInBatchMode' : 'false'}) | 3412 files.append(path) |
3407 files.append(path) | |
3408 elif dep.isProject(): | 3413 elif dep.isProject(): |
3409 out.element('factorypathentry', {'kind' : 'WKSPJAR', 'id' : '/' + dep.name + '/' + dep.name + '.jar', 'enabled' : 'true', 'runInBatchMode' : 'false'}) | 3414 out.element('factorypathentry', {'kind' : 'WKSPJAR', 'id' : '/' + dep.name + '/' + dep.name + '.jar', 'enabled' : 'true', 'runInBatchMode' : 'false'}) |
3410 out.close('factorypath') | 3415 out.close('factorypath') |
3411 update_file(join(p.dir, '.factorypath'), out.xml(indent='\t', newl='\n')) | 3416 update_file(join(p.dir, '.factorypath'), out.xml(indent='\t', newl='\n')) |
3412 files.append(join(p.dir, '.factorypath')) | 3417 files.append(join(p.dir, '.factorypath')) |