On Apr 17, 2010, at 11:11 AM, Kevin Ollivier wrote:


True, but I think the real problem that we're not addressing in this discussion is that different ports have different sets of requirements, meaning their own evaluation process would lead them to choose different tools. If we want a 'one size fits all' build system, the first step is getting each port to come together and consolidate the requirements, and there will most likely need to be some compromises involved as some ports may have to agree to move to a tool that's not really as well suited for their project as the one they're using now.

It's true that different ports have different requirements. So far, this has resulted in every port choosing a different build system. While in some ways this may be convenient for individual ports, it creates negative externalities for the project as a whole.

That being said, we're not trying to convert to one true build system right now, merely seeing if we can reduce the number by having more ports share a build system.

We're even considering changing the build system for Apple's ports (in fact the Apple Windows port may be one of the first experiments).

For example, a primary reason tools like Gyp and Bakefile exist is that for some people, lack of a 100% native IDE-based build system is a deal breaker. For others, like myself, I want low maintenance, completely cross-platform, highly automated and highly scriptable, which are actually features the IDE projects don't fare very well in. So one man's feature is another man's drawback.

There are also factors besides features that are important as well. I think it's also important to remember that from each port's perspective, one potentially big factor in build system choice is also making users comfortable with contributing. For GTK, for example, that may mean that using autotools, the build system most likely to be familiar to potential contributors, is in part a way of making contributing a little less intimidating on a big project like WebKit. Similar with qmake, XCode, etc. I think that a big part of build system decision making is based not necessarily around features, but around being in the developers' comfort zones. So my gut impression is that it's going to be very difficult to find an existing tool that solves all the issues like this for most / all ports in a way that makes everyone happy.

As the saying goes, sometimes the perfect is indeed the enemy of the good. I personally think a quick and simple solution along the lines of what Nikolas and I were talking about maybe the only short term improvement that is viable. Everything else is looking more long- term, and requires both a lot of effort and a lot of collaboration among ports. To the point that, as a practical matter, I'm not sure if the system would save more time than it would take to develop. That's not to say such a system won't be developed, but absent some sponsorship of the project or some highly motivated hackers, I don't know how we plan on getting there.

I just think this subject has come up numerous times, and each time the discussion ended without any improvements being made, so I worry that so long as we wait for the perfect system to come along, we're not going to build the good system that can make life better today.

I would put that the other way around. Gyp exists today and knows how to generate an Xcode project. The templating solution that can generate an Xcode project while seeming less intrusive to Bakefile and Automake users is completely hypothetical. Anyone who wants to is welcome to try to code it, but my expectation going in is that it would evolve to be as complex as Gyp.

Regards,
Maciej


_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to