From 6b749d1dab6a41f04d7ce3f61319c86bd09b9af8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Mon, 29 Jul 2024 09:14:34 +0200 Subject: [PATCH 1/2] BLD Do not require meson-python when using meson directly --- sklearn/meson.build | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/sklearn/meson.build b/sklearn/meson.build index b9ecb5afad898..29c62b1ef7d59 100644 --- a/sklearn/meson.build +++ b/sklearn/meson.build @@ -31,13 +31,6 @@ if not meson.is_cross_build() error('scikit-learn requires Cython>=' + cython_min_version + ', got ' + cython.version() + ' instead') endif - meson_python_version = run_command(py, - ['-c', 'import mesonpy; print(mesonpy.__version__)'], check: true).stdout().strip() - meson_python_min_version = run_command(py, ['_min_dependencies.py', 'meson-python'], check: true).stdout().strip() - if not meson_python_version.version_compare('>=' + meson_python_min_version) - error('scikit-learn requires meson-python>=' + meson_python_min_version + ', got ' + meson_python_version + ' instead') - endif - numpy_version = run_command(py, ['-c', 'import numpy; print(numpy.__version__)'], check: true).stdout().strip() numpy_min_version = run_command(py, ['_min_dependencies.py', 'numpy'], check: true).stdout().strip() @@ -51,6 +44,19 @@ if not meson.is_cross_build() if not scipy_version.version_compare('>=' + scipy_min_version) error('scikit-learn requires scipy>=' + scipy_min_version + ', got ' + scipy_version + ' instead') endif + + # meson-python is required only when going through pip. Using meson directly + # should not check meson-python version. + meson_python_version_output = run_command(py, + ['-c', 'import mesonpy; print(mesonpy.__version__)']) + meson_python_installed = meson_python_version_output.returncode() == 0 + if meson_python_installed + meson_python_min_version = run_command(py, ['_min_dependencies.py', 'meson-python'], check: true).stdout().strip() + if not meson_python_version.version_compare('>=' + meson_python_min_version) + error('scikit-learn requires meson-python>=' + meson_python_min_version + ', got ' + meson_python_version + ' instead') + endif + endif + endif # Adapted from scipy, each project seems to have its own tweaks for this. One From f5b0449b002b471ec520900c94e516790b0f4971 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Mon, 29 Jul 2024 10:07:12 +0200 Subject: [PATCH 2/2] Fix --- sklearn/meson.build | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sklearn/meson.build b/sklearn/meson.build index 29c62b1ef7d59..4bf896fcdeaef 100644 --- a/sklearn/meson.build +++ b/sklearn/meson.build @@ -47,10 +47,11 @@ if not meson.is_cross_build() # meson-python is required only when going through pip. Using meson directly # should not check meson-python version. - meson_python_version_output = run_command(py, - ['-c', 'import mesonpy; print(mesonpy.__version__)']) - meson_python_installed = meson_python_version_output.returncode() == 0 + meson_python_version_command_result = run_command(py, + ['-c', 'import mesonpy; print(mesonpy.__version__)'], check: false) + meson_python_installed = meson_python_version_command_result.returncode() == 0 if meson_python_installed + meson_python_version = meson_python_version_command_result.stdout().strip() meson_python_min_version = run_command(py, ['_min_dependencies.py', 'meson-python'], check: true).stdout().strip() if not meson_python_version.version_compare('>=' + meson_python_min_version) error('scikit-learn requires meson-python>=' + meson_python_min_version + ', got ' + meson_python_version + ' instead')