Re: Proposal for Gnome Goal (was Re: Switching from Autotools to CMake for core evolution products)

On Thu, Oct 13, 2016 at 8:48 PM, Michael Catanzaro <mcatanzaro gnome org> wrote:
On Thu, 2016-10-13 at 11:53 +0100, Sam Thursfield wrote:
Would a GNOME-goal to ensure that every project follows the Build API

What do the meson developers think about the Build API?

I think I would not support such a goal. I do not want to add a
boilerplate fake configure script to my project, nor a fake Makefile to
a project that doesn't use make at all. I want to have fewer build
system files to worry about, not more.

Caveat: I don't speak for all Meson developers.

When I first heard about the build API, I felt annoyed that people
have to ship a configure script and a wrapper Makefile, but I've since
moderated my opinion and I can see why people would like that. I
remember the first time I saw a scons project back in 2007, and I
couldn't figure out how to build the darn thing. Worse, the README
didn't tell me a thing about it.

From that context, I can imagine that having a build API might
actually empower developers to use whatever build system they want to
with their project without running the risk of users being confused as
to how to build the project, and perhaps coming away with a bad
opinion of the project's decision.

On the other hand, I think we should also work towards adding 'known'
build systems to the build API (and hence continuous) without
requiring wrappers as they become popular, and with proper in-tree
documentation for how to build using it. For instance, how do you deal
with a project that ships both Meson (or CMake) and Autotools build
files? There are already several projects that do this.

For the future, we should also think about extending the build API for
things that are impossible with Autotools right now. For instance,
Meson provides a JSON-formatted output for all the targets to be
built, configuration flags, compile commands, and so on. I can imagine
a bunch of innovations here that will make things easier for IDEs,
CIs, and so on.

~Nirbheek Chauhan

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]