Post by Axel KellermannI'd be willing to help out with this, but I'd also need some guidance by
someone with more experience with kdevelop and project manager plugins.
Up till now I've only done some minor bugfixing concerning cmake
integration. So I have a hunch, but not a clear idea, what meson
integration actually encompasses.
With the little experience I have, I imagine we have to have
1) A configure job that runs meson/mesonconf
2) UI elements for setting up projects and their parameters
3) A build job (relying on ninja and the content of compile_commands.json)
4) A parse job to check for syntactical correctness of meson build scripts
5) Some glue code to react to output of meson jobs (OutputView etc.)
Is that - at least to some degree - correct? If not, could someone please
outline what has to be done and give me some pointers where to look for
similar stuff in the kdevelop source tree?
Also, would it be a valid first step to do integration without
implementing 4? Technically that's not really necessary for properly
setting up meson projects, right?
Regards,
Axel
Post by Kevin FunkPost by René J.V. BertinPost by Aleix PolOf course not. You should start a meson plugin, not refactor the cmake one.
Frankly, I don't know (and don't have much incentive to find out) what's
better/easier, strip the unneeded parts from the cmake plugin or start
something completely from scratch.
The compile_command.json parser should be factored out. The file format is
build system agnostic. A couple of different build systems actually support
generating these files (CMake, QBS, <a couple of hand-written scripts>, ...).
For the rest, you'd still need a new plugin for Meson though.
Regards,
Kevin
Post by René J.V. BertinI've seen only 1 aspect for now where meson is very different from both
configure and cmake: you cannot reinvoke it in an already configured build
tree. Instead, you have to use the mesonconf executable, which doesn't have
exactly the same calling signature.
If you are interested I can write a proof of concept in the next few days.