Move build system to meson-python - #166
Conversation
1434bc2 to
5e8ef5a
Compare
52b0dcf to
e73dc73
Compare
5c09809 to
b469c01
Compare
b469c01 to
787c5cb
Compare
e73dc73 to
6f05c5c
Compare
787c5cb to
ef4cb58
Compare
ef4cb58 to
72232cb
Compare
| # Perform regular install | ||
| ${PYTHON} setup.py install "${SKBUILD_ARGS[@]}" | ||
| fi | ||
| $PYTHON -m pip install --no-build-isolation --no-deps -Csetup-args="-Dmkl_threading=gnu_thread" . |
There was a problem hiding this comment.
Is that intended to move from Intel compiler to GCC in cf workflows?
Looking into PR where we proposed to add mkl_umath to the cf feedstock, we still used Intel compiler there.
There was a problem hiding this comment.
We were discussing it in general, but it may be best to do it separately after we confirm that it introduces no performance regressions
There was a problem hiding this comment.
I have restored the Intel compiler as it was before
I agree with @ndgrigorian that GCC switch should be done separately because with Intel compiler we pass optimization flags -fveclib=SVML, -fimf-precision=high, -fvectorize so we need to check performance regressions first
| endif | ||
| elif cc.get_argument_syntax() == 'gcc' | ||
| c_args += [ | ||
| '-O3', '-Wall', '-Wextra', '-Winit-self', '-Wunused-function', |
There was a problem hiding this comment.
-O3 (gcc branch) and /Ox (msvc branch) are unconditionally appended to c_args, which is applied to every target regardless of Meson buildtype.
Old CMakeLists separated release and debug flags
| if cc.get_id().startswith('intel') | ||
| c_args += [ | ||
| '-fimf-precision=high', '-fprotect-parens', '-fveclib=SVML', | ||
| '-fvectorize' |
There was a problem hiding this comment.
Previously -fvectorize was present on Windows. Is that expected it drops now?
| "%PYTHON%" setup.py install %SKBUILD_ARGS% | ||
| if errorlevel 1 exit 1 | ||
| ) | ||
| %PYTHON% -m pip install --no-build-isolation --no-deps . |
| number: {{ buildnumber }} | ||
| ignore_run_exports: | ||
| - blas | ||
| - numpy |
There was a problem hiding this comment.
Seems we need to add llvm-openmp here also
This PR proposes moving from scikit-build to meson-python as the mkl_umath build system
meson-python is already used by NumPy and eliminates the need for CMake, while also allowing setup.py to be removed (with its logic moved into the meson.build script)
Following the approach in NumPy,
vendored/process_src_template.pyis vendored from NumPy to be called from the build script, automating the processing ofconv_template.pyThis PR also adds building and testing with standard clang
Build option also changes:
The former CMake build options are now exposed as meson options and passed via
-Csetup-args:OPTIMIZATION_REPORTbecomes-Csetup-args=-Dopt_report=trueMKL_THREADINGbecomes-Csetup-args=-Dmkl_threading=<layer>