diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2019-10-11 13:20:16 +0200 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2019-10-13 16:20:22 -0700 |
commit | 6f814013f45698a9178203331b62e3fe07fdb7d5 (patch) | |
tree | ef9203f3a1a1e28cc74dbce144136082c176a96c | |
parent | 545f7282d126ee43cf9cfeb66c83d0cbd2c60614 (diff) | |
download | android-node-v8-6f814013f45698a9178203331b62e3fe07fdb7d5.tar.gz android-node-v8-6f814013f45698a9178203331b62e3fe07fdb7d5.tar.bz2 android-node-v8-6f814013f45698a9178203331b62e3fe07fdb7d5.zip |
build: fix version checks in gyp files
Make `distutils.version.StrictVersion` available as a helper to
gyp expressions so they can do proper version checks and update
the gyp files accordingly.
Caveat emptor: `StrictVersion` does *not* like empty strings so
this commit adds truthiness guards. The helper could deal with
those but I felt it better to make it explicit.
Fixes: https://github.com/nodejs/node/issues/29927
PR-URL: https://github.com/nodejs/node/pull/29931
Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
-rw-r--r-- | deps/openssl/openssl.gyp | 3 | ||||
-rw-r--r-- | deps/openssl/openssl.gypi | 4 | ||||
-rw-r--r-- | tools/gyp/pylib/gyp/input.py | 4 |
3 files changed, 8 insertions, 3 deletions
diff --git a/deps/openssl/openssl.gyp b/deps/openssl/openssl.gyp index 0ca7515611..4609d83baa 100644 --- a/deps/openssl/openssl.gyp +++ b/deps/openssl/openssl.gyp @@ -21,7 +21,8 @@ }, 'target_arch=="arm64" and OS=="win"', { # VC-WIN64-ARM inherits from VC-noCE-common that has no asms. 'includes': ['./openssl_no_asm.gypi'], - }, 'gas_version >= "2.26" or nasm_version >= "2.11.8"', { + }, 'gas_version and v(gas_version) >= v("2.26") or ' + 'nasm_version and v(nasm_version) >= v("2.11.8")', { # Require AVX512IFMA supported. See # https://www.openssl.org/docs/man1.1.1/man3/OPENSSL_ia32cap.html # Currently crypto/poly1305/asm/poly1305-x86_64.pl requires AVX512IFMA. diff --git a/deps/openssl/openssl.gypi b/deps/openssl/openssl.gypi index d6d2589083..af08a33c9c 100644 --- a/deps/openssl/openssl.gypi +++ b/deps/openssl/openssl.gypi @@ -1036,7 +1036,9 @@ # 'conditions': [ ['(OS=="win" and MSVS_VERSION>="2012") or ' - 'llvm_version>="3.3" or xcode_version>="5.0" or gas_version>="2.23"', { + 'llvm_version and v(llvm_version) >= v("3.3") or ' + 'gas_version and v(gas_version) >= v("2.23") or ' + 'xcode_version and v(xcode_version) >= v("5.0")', { 'openssl_sources_x64_win_masm': [ '<@(openssl_sources_asm_latest_x64_win_masm)', '<@(openssl_sources_common_x64_win_masm)', diff --git a/tools/gyp/pylib/gyp/input.py b/tools/gyp/pylib/gyp/input.py index 8ea869a267..6db204e401 100644 --- a/tools/gyp/pylib/gyp/input.py +++ b/tools/gyp/pylib/gyp/input.py @@ -19,6 +19,7 @@ import sys import threading import time import traceback +from distutils.version import StrictVersion from gyp.common import GypError from gyp.common import OrderedSet @@ -1088,7 +1089,8 @@ def EvalSingleCondition( else: ast_code = compile(cond_expr_expanded, '<string>', 'eval') cached_conditions_asts[cond_expr_expanded] = ast_code - if eval(ast_code, {'__builtins__': None}, variables): + env = {'__builtins__': None, 'v': StrictVersion} + if eval(ast_code, env, variables): return true_dict return false_dict except SyntaxError as e: |