summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--benchmarks/asv_compare.conf.json.tpl4
-rw-r--r--benchmarks/asv_pip_nopep517.py15
-rwxr-xr-xruntests.py1
3 files changed, 19 insertions, 1 deletions
diff --git a/benchmarks/asv_compare.conf.json.tpl b/benchmarks/asv_compare.conf.json.tpl
index 1f339077c..03d13d985 100644
--- a/benchmarks/asv_compare.conf.json.tpl
+++ b/benchmarks/asv_compare.conf.json.tpl
@@ -78,7 +78,9 @@
"build_command" : [
"python setup.py build {numpy_build_options}",
- "PIP_NO_BUILD_ISOLATION=false python -mpip wheel --no-deps --no-index -w {build_cache_dir} {build_dir}"
+ // pip ignores '--global-option' when pep517 is enabled, we also enabling pip verbose to
+ // be reached from asv `--verbose` so we can verify the build options.
+ "PIP_NO_BUILD_ISOLATION=false python {build_dir}/benchmarks/asv_pip_nopep517.py -v {numpy_global_options} --no-deps --no-index -w {build_cache_dir} {build_dir}"
],
// The commits after which the regression search in `asv publish`
// should start looking for regressions. Dictionary whose keys are
diff --git a/benchmarks/asv_pip_nopep517.py b/benchmarks/asv_pip_nopep517.py
new file mode 100644
index 000000000..9ba165493
--- /dev/null
+++ b/benchmarks/asv_pip_nopep517.py
@@ -0,0 +1,15 @@
+"""
+This file is used by asv_compare.conf.json.tpl.
+"""
+import subprocess, sys
+# pip ignores '--global-option' when pep517 is enabled therefore we disable it.
+cmd = [sys.executable, '-mpip', 'wheel', '--no-use-pep517']
+try:
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, universal_newlines=True)
+except Exception as e:
+ output = str(e.output)
+if "no such option" in output:
+ print("old version of pip, escape '--no-use-pep517'")
+ cmd.pop()
+
+subprocess.run(cmd + sys.argv[1:])
diff --git a/runtests.py b/runtests.py
index 87e26768b..20295ef33 100755
--- a/runtests.py
+++ b/runtests.py
@@ -524,6 +524,7 @@ def asv_compare_config(bench_path, args, h_commits):
is_cached = asv_substitute_config(conf_path, nconf_path,
numpy_build_options = ' '.join([f'\\"{v}\\"' for v in build]),
+ numpy_global_options= ' '.join([f'--global-option=\\"{v}\\"' for v in ["build"] + build])
)
if not is_cached:
asv_clear_cache(bench_path, h_commits)