meson or generic ninja support?
aleixpol at kde.org
Mon Oct 9 16:43:52 BST 2017
On Mon, Oct 9, 2017 at 5:37 PM, Axel Kellermann <axel.kellermann at gmx.de> wrote:
> I'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,
> On 07.08.2017 09:59, Kevin Funk wrote:
>> On Sunday, 6 August 2017 08:45:06 CEST René J.V. Bertin wrote:
>>> On Saturday August 05 2017 01:18:20 Aleix Pol wrote:
>>>> Of 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.
>>> I'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.
More information about the KDevelop