forked from OSchip/llvm-project
gn build: make sync build work with git revs now that svn is gone
This commit is contained in:
parent
0bff9bd26e
commit
19ca80ef05
|
@ -25,7 +25,7 @@ import sys
|
||||||
|
|
||||||
def patch_gn_file(gn_file, add, remove):
|
def patch_gn_file(gn_file, add, remove):
|
||||||
with open(gn_file) as f:
|
with open(gn_file) as f:
|
||||||
gn_contents = f.read()
|
gn_contents = f.read()
|
||||||
|
|
||||||
srcs_tok = 'sources = ['
|
srcs_tok = 'sources = ['
|
||||||
tokloc = gn_contents.find(srcs_tok)
|
tokloc = gn_contents.find(srcs_tok)
|
||||||
|
@ -43,7 +43,7 @@ def patch_gn_file(gn_file, add, remove):
|
||||||
for r in remove:
|
for r in remove:
|
||||||
gn_contents = gn_contents.replace('"%s",' % r, '')
|
gn_contents = gn_contents.replace('"%s",' % r, '')
|
||||||
with open(gn_file, 'w') as f:
|
with open(gn_file, 'w') as f:
|
||||||
f.write(gn_contents)
|
f.write(gn_contents)
|
||||||
|
|
||||||
# Run `gn format`.
|
# Run `gn format`.
|
||||||
gn = os.path.join(os.path.dirname(__file__), '..', 'gn.py')
|
gn = os.path.join(os.path.dirname(__file__), '..', 'gn.py')
|
||||||
|
@ -68,12 +68,6 @@ def sync_source_lists(write):
|
||||||
def find_gitrev(touched_line, in_file):
|
def find_gitrev(touched_line, in_file):
|
||||||
return git_out(
|
return git_out(
|
||||||
['log', '--format=%h', '-1', '-S' + touched_line, in_file]).rstrip()
|
['log', '--format=%h', '-1', '-S' + touched_line, in_file]).rstrip()
|
||||||
def svnrev_from_gitrev(gitrev):
|
|
||||||
git_llvm = os.path.join(
|
|
||||||
os.path.dirname(__file__), '..', '..', 'git-svn', 'git-llvm')
|
|
||||||
return int(subprocess.check_output(
|
|
||||||
[sys.executable, git_llvm, 'svn-lookup', gitrev],
|
|
||||||
).rstrip().lstrip('r'))
|
|
||||||
|
|
||||||
# Collect changes to gn files, grouped by revision.
|
# Collect changes to gn files, grouped by revision.
|
||||||
for gn_file in gn_files:
|
for gn_file in gn_files:
|
||||||
|
@ -97,16 +91,16 @@ def sync_source_lists(write):
|
||||||
|
|
||||||
def by_rev(files, key):
|
def by_rev(files, key):
|
||||||
for f in files:
|
for f in files:
|
||||||
svnrev = svnrev_from_gitrev(find_gitrev(f, cmake_file))
|
rev = find_gitrev(f, cmake_file)
|
||||||
changes_by_rev[svnrev][gn_file][key].append(f)
|
changes_by_rev[rev][gn_file][key].append(f)
|
||||||
by_rev(sorted(cmake_cpp - gn_cpp), 'add')
|
by_rev(sorted(cmake_cpp - gn_cpp), 'add')
|
||||||
by_rev(sorted(gn_cpp - cmake_cpp), 'remove')
|
by_rev(sorted(gn_cpp - cmake_cpp), 'remove')
|
||||||
|
|
||||||
# Output necessary changes grouped by revision.
|
# Output necessary changes grouped by revision.
|
||||||
for svnrev in sorted(changes_by_rev):
|
for rev in sorted(changes_by_rev):
|
||||||
print('gn build: Merge r{0} -- https://reviews.llvm.org/rL{0}'
|
print('gn build: Merge {0} -- https://reviews.llvm.org/rG{0}'
|
||||||
.format(svnrev))
|
.format(rev))
|
||||||
for gn_file, data in sorted(changes_by_rev[svnrev].items()):
|
for gn_file, data in sorted(changes_by_rev[rev].items()):
|
||||||
add = data.get('add', [])
|
add = data.get('add', [])
|
||||||
remove = data.get('remove', [])
|
remove = data.get('remove', [])
|
||||||
if write:
|
if write:
|
||||||
|
@ -120,7 +114,7 @@ def sync_source_lists(write):
|
||||||
print(' remove:\n ' + '\n '.join(remove))
|
print(' remove:\n ' + '\n '.join(remove))
|
||||||
print()
|
print()
|
||||||
if write:
|
if write:
|
||||||
git(['commit', '-m', 'gn build: Merge r%d' % svnrev])
|
git(['commit', '-m', 'gn build: Merge %s' % rev])
|
||||||
else:
|
else:
|
||||||
print()
|
print()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue