Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Future of Managed Build

Given the high level of the discussion at this moment, probably it is not exactly the right moment, but I would like to point that once the high level tools are defined, we'll have to come down to earth and somehow run the build.

The classical choice is to use make, but I strongly suggest you to also consider ninja.

Actually I would design a system to first fit the absolute basic simplicity of ninja, and then eventually port the generator to make.

It took me some time to understand this, and perhaps you can save some time. Ninja, by design, claims to be very, very simple and fast: "Where other build systems are high-level languages Ninja aims to be an assembler." This is so much true, and so much a beautiful design decision, in my opinion.

Personally I'll make ninja the default in my xPack Builder (which currently generates ninja and make files, end exports to .cproject), and I'll also try to get inspiration from the ninja design philosophy in the xPacks general design.

As a practical step, I'll soon add to the xPack Dev Tools a binary package with the ninja binaries, compiled for all major platforms (linux intel 32/64, linux arm 32/64, windows 32/64, macOS 64), to complement the toolchains binary packages.


Another observation: although possible, I guess a very high level tool like you are planning to build might also generate configuration files for cMake and meson, but I think this is a bit counter productive, since these tools will require another step to generate make or ninja files and then run the build. 

Contrary to ninja, which was designed to have its input file generated by a machine, both cMake and meson were designed to have their input files written by humans, and, even if you manage to generate them with a tool, it'll be extremely difficult to further edit them with a tool.

Hope this helps.


Back to the top