Make gen.py compatible with python3
Convert subprocess output from bytes to string using decode(). This
allows a string-based regex to be used.
Open last-commit-position.h using text mode instead of binary. This
causes f.read() to return a string, and allows f.write() to accept a
string.
Use dict.items() instead of dict.iteritems(). This makes the code
slightly slower under python2, but gen.py is rarely invoked anyway.
Change-Id: I0eb9aec758433b0cd26fdb4647bd56337ca89f4b
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/4400
Reviewed-by: Dirk Pranke <dpranke@google.com>
Commit-Queue: Dirk Pranke <dpranke@google.com>
diff --git a/build/gen.py b/build/gen.py
index a7142fa..3edefa7 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -119,7 +119,7 @@
describe_output = subprocess.check_output(
['git', 'describe', 'HEAD', '--match', ROOT_TAG], shell=host.is_windows(),
cwd=REPO_ROOT)
- mo = re.match(ROOT_TAG + '-(\d+)-g([0-9a-f]+)', describe_output)
+ mo = re.match(ROOT_TAG + '-(\d+)-g([0-9a-f]+)', describe_output.decode())
if not mo:
raise ValueError(
'Unexpected output from git describe when generating version header')
@@ -137,11 +137,11 @@
# Only write/touch this file if the commit position has changed.
old_contents = ''
if os.path.isfile(header):
- with open(header, 'rb') as f:
+ with open(header, 'r') as f:
old_contents = f.read()
if old_contents != contents:
- with open(header, 'wb') as f:
+ with open(header, 'w') as f:
f.write(contents)
@@ -211,7 +211,7 @@
' '.join(cflags_cc + settings.get('cflags_cc', [])),
])
- for library, settings in static_libraries.iteritems():
+ for library, settings in static_libraries.items():
for src_file in settings['sources']:
build_source(src_file, settings)
@@ -221,7 +221,7 @@
ninja_lines.append(' libflags = %s' % ' '.join(libflags))
- for executable, settings in executables.iteritems():
+ for executable, settings in executables.items():
for src_file in settings['sources']:
build_source(src_file, settings)