-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add CMake based buildsystem #69
Conversation
Based on work by @harryherold
Travis with the ppa seems to be extremly unreliable:
How about using the same build-and-cache workflow done in my GHA CI (see #68) |
There are a few questions to this PR:
In general, it's only a hassle to maintain two build systems. |
This is for development. When you just open the repo/folder your include paths will be incomplete and when you do The CML solves this: It sets up the correct environment, can generate compile_commands.json usable by IDEs or even full IDE projects. I don't expect virtual environments to be a problem, it works with pyenv at least As for maintenance: It is not used for regular installation so if it gets broken, the next one using it can fix it, no harm done. And there are 11 lines of code, 8 if you exclude the (non-supported) installation part (which I just included for completeness). Most of them are trivial or boilerplate. The fact that I'm the second one bothering with adding one seems to indicate demand for this. |
I totally agree with @Flamefire , it is really a nightmare to deal with compiler errors through |
Ok there is one thing with installation: You'd need to set |
Ok. I understand the Issue. Especially, as you want to address the cProfile interface this might be relevant. What about creating a separate folder for unsupported build systems? I'd like to avoid people trying the C-Make file, and raising an issue because they did not realise, that CMake is the "not supported" way of installing. |
How about adding a sentence to the Readme instead? Then you can close the issue with RTFM.
Understand this. However I would just close those and say: We have 1 installation method and 1 build system for development. Those work, period. "Better" is always subjective. So we have those 11 lines of CMake code and if you are not happy with it you can use whatever you like locally. I don't really care what build system it is, as long as it "just works" for common workflows. So if at all someone can come along and propose replacing CMake. But using CMake has the huge advantage that the existing FindScorep file developed and maintained in other repos can be used. So I expect your situation to not arise or to be shut down right away. Final "Because": What value does another build system add to make it worth adding especially if you already were contra adding CMake? Here it can be argued that it solves a problem. Another build system solves the same problem differently so no benefit. |
I fear that this might not always help.
Well, I think simply posting RTFM and close is a bit too cruel 😉 . Can you add a warning or something, that can't be overseen, and states that the CMake is for Development only and not supported at all? Best before anything else happens, or with some explicitly accepting or whatever else? (I am open for good Ideas here.) If someone comes along with a different build system I would add the same requirements together with a deadline for objections, and that only one build system is accepted. It's up to you then, to discuss this with whoever comes along. |
I was (half) joking of course ;) Done in 3632e04. The message show during the
Should be enough :)
Sure. I'll ask the question if that provides any benefit over the existing (cmake) solution and if it can't be shown that the benefit is even worth discussing that can be dismissed. So answers like "but I like X better" are invalid. |
Merged. |
Based on work by @harryherold
This allows for easier development as e.g. include paths and the like are set up correctly.
While this module could be installed by CMake the preferred approach is still
pip
, so this is for development only, but IMO very valuable.