Index: tools/clang/scripts/update.py |
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py |
index 06d241e80b8e77f01e33bffe034641304a7f348a..4415dea29143e90e22041c7006aec59c0d4e40c5 100755 |
--- a/tools/clang/scripts/update.py |
+++ b/tools/clang/scripts/update.py |
@@ -65,8 +65,14 @@ def WriteStampFile(s): |
def PrintRevision(): |
"""Print the current Clang revision.""" |
+ # gyp runs update.py --print-revision even when clang=1 isn't set. |
+ # It won't use the value, but we must not error. |
+ if not re.search(r'\b(clang|asan)=1', os.environ.get('GYP_DEFINES', '')): |
+ print "0" |
+ return |
+ |
# TODO(hans): This needs an update when we move to prebuilt Clang binaries. |
- svn_info = subprocess.check_output(['svn', 'info', LLVM_DIR]) |
+ svn_info = subprocess.check_output(['svn', 'info', LLVM_DIR], shell=True) |
m = re.search(r'Revision: (\d+)', svn_info) |
assert m |
print m.group(1) |
@@ -84,15 +90,6 @@ def RmTree(dir): |
shutil.rmtree(dir, onerror=ChmodAndRetry) |
-def ClobberChromiumBuildFiles(): |
- """Clobber Chomium build files.""" |
- print 'Clobbering Chromium build files...' |
- out_dir = os.path.join(CHROMIUM_DIR, 'out') |
- if os.path.isdir(out_dir): |
- RmTree(out_dir) |
- print 'Removed Chromium out dir: %s.' % (out_dir) |
- |
- |
def RunCommand(command, fail_hard=True): |
"""Run command and return success (True) or failure; or if fail_hard is |
True, exit on failure.""" |
@@ -225,9 +222,6 @@ def UpdateClang(args): |
return 0 |
AddCMakeToPath() |
- if args.clobber: |
- ClobberChromiumBuildFiles() |
- |
# Reset the stamp file in case the build is unsuccessful. |
WriteStampFile('') |
@@ -308,12 +302,15 @@ def main(): |
# dup()ed sys.stdin is writable, try |
# fd2 = os.dup(sys.stdin.fileno()); os.write(fd2, 'hi') |
# TODO: Fix gclient instead, http://crbug.com/95350 |
+ try: |
+ stderr = os.fdopen(os.dup(sys.stdin.fileno())) |
+ except: |
+ stderr = sys.stderr |
return subprocess.call( |
- [os.path.join(os.path.dirname(__file__), 'update.sh')] + sys.argv[1:], |
- stderr=os.fdopen(os.dup(sys.stdin.fileno()))) |
+ [os.path.join(os.path.dirname(__file__), 'update.sh')] + sys.argv[1:], |
+ stderr=stderr) |
parser = argparse.ArgumentParser(description='Build Clang.') |
- parser.add_argument('--no-clobber', dest='clobber', action='store_false') |
parser.add_argument('--tools', nargs='*', default=['plugins']) |
# For now, this flag is only used for the non-Windows flow, but argparser gets |
# mad if it sees a flag it doesn't recognize. |