Skip to content

Commit

Permalink
build: support py3 for configure.py
Browse files Browse the repository at this point in the history
PR-URL: nodejs#29106
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
  • Loading branch information
cclauss authored and Trott committed Aug 16, 2019
1 parent affa23b commit a582c6b
Showing 1 changed file with 16 additions and 23 deletions.
39 changes: 16 additions & 23 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import shlex
import subprocess
import shutil
import string
from distutils.spawn import find_executable as which

# If not run from node/, cd to node/.
Expand Down Expand Up @@ -626,18 +625,14 @@ def print_verbose(x):

def b(value):
"""Returns the string 'true' if value is truthy, 'false' otherwise."""
if value:
return 'true'
else:
return 'false'
return 'true' if value else 'false'

def B(value):
"""Returns 1 if value is truthy, 0 otherwise."""
if value:
return 1
else:
return 0
return 1 if value else 0

def to_utf8(s):
return s if isinstance(s, str) else s.decode("utf-8")

def pkg_config(pkg):
"""Run pkg-config on the specified package
Expand All @@ -652,7 +647,7 @@ def pkg_config(pkg):
try:
proc = subprocess.Popen(shlex.split(pkg_config) + args,
stdout=subprocess.PIPE)
val = proc.communicate()[0].strip()
val = to_utf8(proc.communicate()[0]).strip()
except OSError as e:
if e.errno != errno.ENOENT: raise e # Unexpected error.
return (None, None, None, None) # No pkg-config/pkgconf installed.
Expand All @@ -668,10 +663,10 @@ def try_check_compiler(cc, lang):
except OSError:
return (False, False, '', '')

proc.stdin.write('__clang__ __GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__ '
'__clang_major__ __clang_minor__ __clang_patchlevel__')
proc.stdin.write(b'__clang__ __GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__ '
b'__clang_major__ __clang_minor__ __clang_patchlevel__')

values = (proc.communicate()[0].split() + ['0'] * 7)[0:7]
values = (to_utf8(proc.communicate()[0]).split() + ['0'] * 7)[0:7]
is_clang = values[0] == '1'
gcc_version = tuple(map(int, values[1:1+3]))
clang_version = tuple(map(int, values[4:4+3])) if is_clang else None
Expand All @@ -696,7 +691,7 @@ def get_version_helper(cc, regexp):
consider adjusting the CC environment variable if you installed
it in a non-standard prefix.''')

match = re.search(regexp, proc.communicate()[1])
match = re.search(regexp, to_utf8(proc.communicate()[1]))

if match:
return match.group(2)
Expand All @@ -715,7 +710,7 @@ def get_nasm_version(asm):
return '0'

match = re.match(r"NASM version ([2-9]\.[0-9][0-9]+)",
proc.communicate()[0])
to_utf8(proc.communicate()[0]))

if match:
return match.group(1)
Expand Down Expand Up @@ -746,7 +741,7 @@ def get_gas_version(cc):
consider adjusting the CC environment variable if you installed
it in a non-standard prefix.''')

gas_ret = proc.communicate()[1]
gas_ret = to_utf8(proc.communicate()[1])
match = re.match(r"GNU assembler version ([2-9]\.[0-9]+)", gas_ret)

if match:
Expand Down Expand Up @@ -811,10 +806,8 @@ def cc_macros(cc=None):
consider adjusting the CC environment variable if you installed
it in a non-standard prefix.''')

p.stdin.write('\n')
out = p.communicate()[0]

out = str(out).split('\n')
p.stdin.write(b'\n')
out = to_utf8(p.communicate()[0]).split('\n')

k = {}
for line in out:
Expand Down Expand Up @@ -1294,7 +1287,7 @@ def glob_to_var(dir_base, dir_sub, patch_dir):

def configure_intl(o):
def icu_download(path):
depFile = 'tools/icu/current_ver.dep';
depFile = 'tools/icu/current_ver.dep'
with open(depFile) as f:
icus = json.load(f)
# download ICU, if needed
Expand Down Expand Up @@ -1363,7 +1356,7 @@ def write_config(data, name):
o['variables']['icu_small'] = b(True)
locs = set(options.with_icu_locales.split(','))
locs.add('root') # must have root
o['variables']['icu_locales'] = string.join(locs,',')
o['variables']['icu_locales'] = ','.join(str(loc) for loc in locs)
# We will check a bit later if we can use the canned deps/icu-small
elif with_intl == 'full-icu':
# full ICU
Expand Down Expand Up @@ -1503,7 +1496,7 @@ def write_config(data, name):
elif int(icu_ver_major) < icu_versions['minimum_icu']:
error('icu4c v%s.x is too old, v%d.x or later is required.' %
(icu_ver_major, icu_versions['minimum_icu']))
icu_endianness = sys.byteorder[0];
icu_endianness = sys.byteorder[0]
o['variables']['icu_ver_major'] = icu_ver_major
o['variables']['icu_endianness'] = icu_endianness
icu_data_file_l = 'icudt%s%s.dat' % (icu_ver_major, 'l')
Expand Down

0 comments on commit a582c6b

Please sign in to comment.