ENH: Meson pybind11 build#1343
Conversation
|
@galabovaa , I think this is ready for review, (the Julia docs is a separate issue, failing on master too) and I think its good to go. |
| # Created by https://www.toptal.com/developers/gitignore/api/meson | ||
| # Edit at https://www.toptal.com/developers/gitignore?templates=meson | ||
|
|
||
| ### Meson ### | ||
| # subproject directories | ||
| /subprojects/* | ||
| !/subprojects/*.wrap | ||
|
|
||
| # Meson Directories | ||
| meson-logs | ||
| meson-private | ||
|
|
||
| # Meson Files | ||
| meson_benchmark_setup.dat | ||
| meson_test_setup.dat | ||
| sanitycheckcpp.cc # C++ specific | ||
| sanitycheckcpp.exe # C++ specific | ||
|
|
||
| # Ninja | ||
| build.ninja | ||
| .ninja_deps | ||
| .ninja_logs | ||
|
|
||
| # Misc | ||
| compile_commands.json | ||
|
|
||
| # End of https://www.toptal.com/developers/gitignore/api/meson | ||
| # ################# |
There was a problem hiding this comment.
This almost entirely looks buggy, so I don't know what toptal.com's rationale here is.
/subprojects/* is reasonable enough -- meson subprojects will be downloaded there so you only want to check in .wrap files. Appropriately, it is rooted in /.
The rest are all files that are created inside of the build directory. Excluding any one of them -- or even a bunch of them -- is missing the point that it fails to gitignore every possible *.o file, or your *.so / *.dll outputs, or many many other things generated as part of a build.
... it's also redundant due to https://mesonbuild.com/FAQ.html#how-do-i-ignore-the-build-directory-in-my-vcs since this is one of the Quality of Life advantages of using meson; you do not need to gitignore the build directory at all.
That maybe should be fixed somewhere in this generator tool.
| "pyomo>=6.0", | ||
| "wheel>=0.2", | ||
| ] | ||
| requires = ["pybind11", "meson-python"] |
There was a problem hiding this comment.
Due to the use of forcefallback, the pybind11 requirement here is installed but not used -- meson doesn't bother checking for the pybind11-config script installed by the pybind11 wheel into the pip / python -m build isolated build venv. It goes straight to initializing pybind11 as a meson subproject and retrieves the pybind11 declare_dependency() object.
There was a problem hiding this comment.
Ah neat, I didn't realize that. Updated :)
Co-authored-by: eli-schwartz <eli-schwartz@users.noreply.github.com>
Co-authored-by: eli-schwartz <eli-schwartz@users.noreply.github.com>
|
@galabovaa does this look alright? |
|
Looks fine to me from a meson perspective. |
|
Looks good to me! Merging in latest. Thank you for the time and effort you spent on this. I will now try to build highspy for all platforms with meson locally. |
|
This is great guys! When will the next release of highspy be uploaded on pypi with all these fixes? |
|
I don't know, but it might not be long now that @galabovaa is back from holiday |
|
Hi I'd love to see this on pypi! I'm building from source and working off an open PR on python-mip. Getting working wheels on pypi would make it a lot easier to use this excellent solver! |
Needs #1336. Closes #1321, #1320, and #1022. The wheels should be built correctly (i.e. built with
cibuildwheeland repaired byauditwheel,delocateanddelvewheel) formanylinux,musllinux, windows (arm_64), andmacos(botharm64andx86_64) [as seen here] so it should fix the existing broken wheel issues, that is it:highspy#1119@galabovaa this will be hard to review in its current state, but after #1336 is merged and I rebase onto latest, the change-set will contain just the Python changes and it will be easier to review. @eli-schwartz had some great comments on the original PR.
The windows issues were known problems discussed upstream as well:
But for users consuming wheels from PyPI or building locally it isn't an issue.