Move build system to meson-python#303
Open
ndgrigorian wants to merge 18 commits into
Open
Conversation
ndgrigorian
force-pushed
the
use-meson-build
branch
4 times, most recently
from
April 8, 2026 02:13
fd5d163 to
182445d
Compare
ndgrigorian
marked this pull request as ready for review
April 8, 2026 06:51
ndgrigorian
requested review from
antonwolfy,
jharlow-intel and
xaleryb
as code owners
April 8, 2026 06:51
Contributor
There was a problem hiding this comment.
Pull request overview
This PR migrates mkl_fft’s build backend from setuptools/setup.py to meson-python, moving extension/module build logic into meson.build and updating packaging/CI/conda recipes accordingly.
Changes:
- Switch PEP 517 build backend to
mesonpyand dropsetup.py-based build configuration. - Add a Meson build definition that generates
mklfft.cand builds/installs the_pydftiextension plus Python sources/tests. - Update conda recipes and CI workflows to install Meson-based build dependencies and build via
pip.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| setup.py | Removed legacy setuptools build script. |
| pyproject.toml | Switched build backend to mesonpy; adjusted formatter/lint tool config and removed setuptools-specific sections. |
| meson.build | New Meson build: MKL dependency discovery, source generation, Cython extension build, and install rules. |
| conda-recipe/meta.yaml | Add Meson build tooling to host requirements; remove setuptools. |
| conda-recipe/build.sh | Build/install via pip without setting MKLROOT. |
| conda-recipe/bld.bat | Build/install via pip without setting MKLROOT. |
| conda-recipe-cf/meta.yaml | Same as Intel recipe for conda-forge context. |
| conda-recipe-cf/build.sh | Build/install via pip instead of setup.py. |
| conda-recipe-cf/bld.bat | Build/install via pip instead of setup.py. |
| .github/workflows/build-with-standard-clang.yml | New CI job validating Meson-based builds with system clang. |
| .github/workflows/build-with-clang.yml | Update dependency installation to Meson-based toolchain (workflow still uses editable install later). |
| .github/workflows/build_pip.yml | Update dependency installation to Meson-based toolchain (workflow still uses editable install). |
| .flake8 | Exclude new vendored helper script. |
| _vendored/README.md | Document additional vendored script origin. |
| _vendored/process_src_template.py | New vendored CLI for generating *.c from *.c.src. |
| _vendored/conv_template.py | Formatting/modernization changes to vendored tempita processor. |
Comments suppressed due to low confidence (1)
.github/workflows/build_pip.yml:49
- This workflow still installs the package in editable mode (pip install -e ...), but build-with-standard-clang.yml explicitly notes that mkl_fft cannot be installed in editable mode. If editable installs are indeed unsupported with the meson-python backend, switch this workflow to a non-editable install (pip install .) and run tests from outside the repo checkout (e.g., cd ..) to ensure imports come from the installed wheel. If editable installs are intended to be supported, please drop/adjust the comment in build-with-standard-clang.yml and ensure meson-python minimum version is set accordingly.
ndgrigorian
force-pushed
the
use-meson-build
branch
4 times, most recently
from
April 8, 2026 08:27
d321b0d to
1f244f9
Compare
antonwolfy
reviewed
Apr 9, 2026
ndgrigorian
force-pushed
the
use-meson-build
branch
from
April 9, 2026 21:26
b81ce0e to
05fd5be
Compare
ndgrigorian
force-pushed
the
use-meson-build
branch
3 times, most recently
from
April 9, 2026 21:33
2aaa278 to
619eff1
Compare
ndgrigorian
force-pushed
the
drop-mkl-service-dependency
branch
from
April 9, 2026 21:36
aaf2822 to
81767b3
Compare
ndgrigorian
force-pushed
the
use-meson-build
branch
from
April 9, 2026 21:37
619eff1 to
ef44173
Compare
ndgrigorian
force-pushed
the
drop-mkl-service-dependency
branch
from
April 9, 2026 23:32
81767b3 to
a8169a5
Compare
ndgrigorian
force-pushed
the
use-meson-build
branch
2 times, most recently
from
April 10, 2026 00:25
5118b1d to
1ec3c0e
Compare
ndgrigorian
force-pushed
the
use-meson-build
branch
from
April 11, 2026 03:05
1ec3c0e to
2ab1e4a
Compare
we search for MKL with cmake. Also drop pkg-config from meta.yamls and use cmake
prevent clashing openMP runtimes/mkl installation
ndgrigorian
force-pushed
the
use-meson-build
branch
from
May 15, 2026 20:11
ee32e31 to
0c79c9a
Compare
ndgrigorian
force-pushed
the
use-meson-build
branch
from
May 16, 2026 01:11
01109aa to
25f188e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR proposes moving from
setuptoolstomeson-pythonas themkl_fftbuild systemmeson-pythonis already used by NumPy and allowssetup.pyto be removed (with its logic moved into themeson.buildscript)Also moves to
mklas dependency, withmkl-serviceonly used as a dependency when using the scipy interface. If scipy is installed without mkl-service, the scipy interface won't be available