Re: [webkit-dev] Please welcome GYP to the our dysfunctional build family

2009-07-09 Thread Jeremy Orlow
This makes me very, very, very happy.  :-)

On Thu, Jul 9, 2009 at 9:23 PM, Dimitri Glazkov wrote:

> Dear WebKiteurs,
>
> In our persisting quest to be more like a common WebKit port, we have
> added Chromium build files to the tree this afternoon. These files are
> WebCore/WebCore.gypi and JavaScriptCore/JavaScriptCore.gypi and they
> are the GYP include files. As you may know, we use GYP
> (http://code.google.com/p/gyp) for generating MSVC, XCode, Scons, and
> even Make projects for Chromium.
>
> We are rather fond of GYP. Perhaps it is because it allows us to
> maintain one set of project files for all three Chromium platforms;
>
> or maybe because it lets us to do things like WebCore.gypi, where we
> can just mindlessly add all project files to the list and then use
> various neat GYP filtering facilities to narrow them down to sets that
> are relevant for specific builds;
>
> or maybe because it easifies creating cross-platform and
> cross-build-system targets, actions, and rules;
>
> or maybe because we just love saying "Gyp!"
>
> I don't truthfully know.
>
> What I do know is that starting now, we'd love for you to remember
> WebCore.gypi and JavaScriptCore.gypi when you are adding or removing
> files from WebCore or JavaScriptCore. Thanks to the power of GYP, you
> don't have worry whether this file will be used by Chromium: the rule
> is that if there's a project file change, it applies to the *.gypi
> files. The format is very simple and intuitive, a simple Python/JSONey
> list+dict.
>
> Thank you for your attention, men and women of WebKit.
>
> :DG<
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Please welcome GYP to the our dysfunctional build family

2009-07-09 Thread Adam Barth
You have improved my quality of life by several months.

On Thu, Jul 9, 2009 at 9:34 PM, Jeremy Orlow wrote:
> This makes me very, very, very happy.  :-)
>
> On Thu, Jul 9, 2009 at 9:23 PM, Dimitri Glazkov 
> wrote:
>>
>> Dear WebKiteurs,
>>
>> In our persisting quest to be more like a common WebKit port, we have
>> added Chromium build files to the tree this afternoon. These files are
>> WebCore/WebCore.gypi and JavaScriptCore/JavaScriptCore.gypi and they
>> are the GYP include files. As you may know, we use GYP
>> (http://code.google.com/p/gyp) for generating MSVC, XCode, Scons, and
>> even Make projects for Chromium.
>>
>> We are rather fond of GYP. Perhaps it is because it allows us to
>> maintain one set of project files for all three Chromium platforms;
>>
>> or maybe because it lets us to do things like WebCore.gypi, where we
>> can just mindlessly add all project files to the list and then use
>> various neat GYP filtering facilities to narrow them down to sets that
>> are relevant for specific builds;
>>
>> or maybe because it easifies creating cross-platform and
>> cross-build-system targets, actions, and rules;
>>
>> or maybe because we just love saying "Gyp!"
>>
>> I don't truthfully know.
>>
>> What I do know is that starting now, we'd love for you to remember
>> WebCore.gypi and JavaScriptCore.gypi when you are adding or removing
>> files from WebCore or JavaScriptCore. Thanks to the power of GYP, you
>> don't have worry whether this file will be used by Chromium: the rule
>> is that if there's a project file change, it applies to the *.gypi
>> files. The format is very simple and intuitive, a simple Python/JSONey
>> list+dict.
>>
>> Thank you for your attention, men and women of WebKit.
>>
>> :DG<
>> ___
>> webkit-dev mailing list
>> webkit-dev@lists.webkit.org
>> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>
>
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>
>
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Please welcome GYP to the our dysfunctional build family

2009-07-10 Thread Maciej Stachowiak


I think our number of different build systems is getting out of hand.  
Since gyp is being successfully used to build across platforms, and  
maintained by people who also work on some WebKit ports (and can thus  
likely be adapted to our needs), I'd like to consider whether we can  
use it for Apple's ports, and maybe consider rolling it out to  
additional ports over time. The gyp strategy of creating platform- 
native project files sounds like a good general approach.


 - Maciej

On Jul 9, 2009, at 9:23 PM, Dimitri Glazkov wrote:


Dear WebKiteurs,

In our persisting quest to be more like a common WebKit port, we have
added Chromium build files to the tree this afternoon. These files are
WebCore/WebCore.gypi and JavaScriptCore/JavaScriptCore.gypi and they
are the GYP include files. As you may know, we use GYP
(http://code.google.com/p/gyp) for generating MSVC, XCode, Scons, and
even Make projects for Chromium.

We are rather fond of GYP. Perhaps it is because it allows us to
maintain one set of project files for all three Chromium platforms;

or maybe because it lets us to do things like WebCore.gypi, where we
can just mindlessly add all project files to the list and then use
various neat GYP filtering facilities to narrow them down to sets that
are relevant for specific builds;

or maybe because it easifies creating cross-platform and
cross-build-system targets, actions, and rules;

or maybe because we just love saying "Gyp!"

I don't truthfully know.

What I do know is that starting now, we'd love for you to remember
WebCore.gypi and JavaScriptCore.gypi when you are adding or removing
files from WebCore or JavaScriptCore. Thanks to the power of GYP, you
don't have worry whether this file will be used by Chromium: the rule
is that if there's a project file change, it applies to the *.gypi
files. The format is very simple and intuitive, a simple Python/JSONey
list+dict.

Thank you for your attention, men and women of WebKit.

:DG<
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


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


Re: [webkit-dev] Please welcome GYP to the our dysfunctional build family

2009-07-10 Thread Dimitri Glazkov
We certainly would love to see that happen and gladly commit helping
to make this happen.

:DG<

On Fri, Jul 10, 2009 at 3:15 PM, Maciej Stachowiak wrote:
>
> I think our number of different build systems is getting out of hand. Since
> gyp is being successfully used to build across platforms, and maintained by
> people who also work on some WebKit ports (and can thus likely be adapted to
> our needs), I'd like to consider whether we can use it for Apple's ports,
> and maybe consider rolling it out to additional ports over time. The gyp
> strategy of creating platform-native project files sounds like a good
> general approach.
>
>  - Maciej
>
> On Jul 9, 2009, at 9:23 PM, Dimitri Glazkov wrote:
>
>> Dear WebKiteurs,
>>
>> In our persisting quest to be more like a common WebKit port, we have
>> added Chromium build files to the tree this afternoon. These files are
>> WebCore/WebCore.gypi and JavaScriptCore/JavaScriptCore.gypi and they
>> are the GYP include files. As you may know, we use GYP
>> (http://code.google.com/p/gyp) for generating MSVC, XCode, Scons, and
>> even Make projects for Chromium.
>>
>> We are rather fond of GYP. Perhaps it is because it allows us to
>> maintain one set of project files for all three Chromium platforms;
>>
>> or maybe because it lets us to do things like WebCore.gypi, where we
>> can just mindlessly add all project files to the list and then use
>> various neat GYP filtering facilities to narrow them down to sets that
>> are relevant for specific builds;
>>
>> or maybe because it easifies creating cross-platform and
>> cross-build-system targets, actions, and rules;
>>
>> or maybe because we just love saying "Gyp!"
>>
>> I don't truthfully know.
>>
>> What I do know is that starting now, we'd love for you to remember
>> WebCore.gypi and JavaScriptCore.gypi when you are adding or removing
>> files from WebCore or JavaScriptCore. Thanks to the power of GYP, you
>> don't have worry whether this file will be used by Chromium: the rule
>> is that if there's a project file change, it applies to the *.gypi
>> files. The format is very simple and intuitive, a simple Python/JSONey
>> list+dict.
>>
>> Thank you for your attention, men and women of WebKit.
>>
>> :DG<
>> ___
>> webkit-dev mailing list
>> webkit-dev@lists.webkit.org
>> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>
>
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Please welcome GYP to the our dysfunctional build family

2009-07-10 Thread Mark Rowe


On 2009-07-09, at 21:23, Dimitri Glazkov wrote:


Dear WebKiteurs,

In our persisting quest to be more like a common WebKit port, we have
added Chromium build files to the tree this afternoon. These files are
WebCore/WebCore.gypi and JavaScriptCore/JavaScriptCore.gypi and they
are the GYP include files. As you may know, we use GYP
(http://code.google.com/p/gyp) for generating MSVC, XCode, Scons, and
even Make projects for Chromium.


When do you plan to land enough of the build system that it can be  
used to, y'know, build something?  It's difficult to evaluate such a  
system in any serious fashion without seeing how it would work with  
our setup.


- Mark



smime.p7s
Description: S/MIME cryptographic signature
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Please welcome GYP to the our dysfunctional build family

2009-07-10 Thread Dimitri Glazkov
On Fri, Jul 10, 2009 at 3:53 PM, Mark Rowe wrote:
>
> When do you plan to land enough of the build system that it can be used to,
> y'know, build something?  It's difficult to evaluate such a system in any
> serious fashion without seeing how it would work with our setup.

We were planning to do this in steps, gypis getting there first so
that we could avoid Chromium breakages due to project file changes.
After that, we were planning to start upstreaming files, associated
with build rules, and eventually moving the whole webkit.gyp. It's a
bit tricky, considering with all this we have to keep a working build
-- kind of like that commercial where they were rebuilding an airplane
while in flight.

The gyp file for webkit currently lives here:
http://src.chromium.org/viewvc/chrome/trunk/src/webkit/webkit.gyp

As you can see, we haven't even switched over to use the gypis --
still trying to manage the fallout of the Widget becoming RefCounted
and roll past 45679.

The best way to test-drive it today would be to check out Chromium
(http://code.google.com/p/chromium/wiki/MacBuildInstructions) and look
at webkit/webkit.xcodeproj/ as a result. Shouldn't take much time.

:DG<
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Please welcome GYP to the our dysfunctional build family

2009-07-12 Thread Adam Treat
On Friday 10 July 2009 12:23:50 am Dimitri Glazkov wrote:
> Dear WebKiteurs,
>
> In our persisting quest to be more like a common WebKit port, we have
> added Chromium build files to the tree this afternoon. These files are
> WebCore/WebCore.gypi and JavaScriptCore/JavaScriptCore.gypi and they
> are the GYP include files. As you may know, we use GYP
> (http://code.google.com/p/gyp) for generating MSVC, XCode, Scons, and
> even Make projects for Chromium.
>
> We are rather fond of GYP. Perhaps it is because it allows us to
> maintain one set of project files for all three Chromium platforms;

Gyp sounds remarkably similar to CMake to me.  I've never heard of Gyp before 
so I don't know much more about it than what you've said in this email, but 
CMake has been around for quite sometime and is in very wide use in the Open 
Source community.  Can you say what prompts the use of Gyp over a tool like 
CMake?

Cheers,
Adam
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Please welcome GYP to the our dysfunctional build family

2009-07-12 Thread Jeremy Orlow
On Sun, Jul 12, 2009 at 5:38 AM, Adam Treat  wrote:

> On Friday 10 July 2009 12:23:50 am Dimitri Glazkov wrote:
> > Dear WebKiteurs,
> >
> > In our persisting quest to be more like a common WebKit port, we have
> > added Chromium build files to the tree this afternoon. These files are
> > WebCore/WebCore.gypi and JavaScriptCore/JavaScriptCore.gypi and they
> > are the GYP include files. As you may know, we use GYP
> > (http://code.google.com/p/gyp) for generating MSVC, XCode, Scons, and
> > even Make projects for Chromium.
> >
> > We are rather fond of GYP. Perhaps it is because it allows us to
> > maintain one set of project files for all three Chromium platforms;
>
> Gyp sounds remarkably similar to CMake to me.  I've never heard of Gyp
> before
> so I don't know much more about it than what you've said in this email, but
> CMake has been around for quite sometime and is in very wide use in the
> Open
> Source community.  Can you say what prompts the use of Gyp over a tool like
> CMake?


>From a quick glance at cmake's website, it seems that it's a build system
and not a project file generator.  I think it was pretty important to us to
generate project files so that you can use the full power of each platform's
IDE and toolchain.

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


Re: [webkit-dev] Please welcome GYP to the our dysfunctional build family

2009-07-12 Thread Adam Treat
On Sunday 12 July 2009 10:42:26 am Jeremy Orlow wrote:
> On Sun, Jul 12, 2009 at 5:38 AM, Adam Treat  wrote:
> > On Friday 10 July 2009 12:23:50 am Dimitri Glazkov wrote:
> > > Dear WebKiteurs,
> > >
> > > In our persisting quest to be more like a common WebKit port, we have
> > > added Chromium build files to the tree this afternoon. These files are
> > > WebCore/WebCore.gypi and JavaScriptCore/JavaScriptCore.gypi and they
> > > are the GYP include files. As you may know, we use GYP
> > > (http://code.google.com/p/gyp) for generating MSVC, XCode, Scons, and
> > > even Make projects for Chromium.
> > >
> > > We are rather fond of GYP. Perhaps it is because it allows us to
> > > maintain one set of project files for all three Chromium platforms;
> >
> > Gyp sounds remarkably similar to CMake to me.  I've never heard of Gyp
> > before
> > so I don't know much more about it than what you've said in this email,
> > but CMake has been around for quite sometime and is in very wide use in
> > the Open
> > Source community.  Can you say what prompts the use of Gyp over a tool
> > like CMake?
>
> From a quick glance at cmake's website, it seems that it's a build system
> and not a project file generator.  I think it was pretty important to us to
> generate project files so that you can use the full power of each
> platform's IDE and toolchain.

Take a more detailed look.  CMake is a meta-build system.  It generates native 
project files for Windows Visual Studio, XCode and GNU Makefile.  Just like Gyp 
if I understand correctly.

It has been around for a good amount of time and works under every major 
platform.  KDE uses CMake exclusively to build on every platform.

Cheers,

Adam

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


Re: [webkit-dev] Please welcome GYP to the our dysfunctional build family

2009-07-12 Thread Brent Fulgham

Hi,

I asked some similar questions on IRC.


On Friday 10 July 2009 12:23:50 am Dimitri Glazkov wrote:
> As you may know, we use GYP
> (http://code.google.com/p/gyp) for
generating MSVC, XCode, Scons, and even Make projects for Chromium.



On Sun, Jul 12, 2009 at 5:38 AM, Adam Treat  wrote:

Gyp sounds remarkably similar to CMake to me.


On Jul 12, 2009, at 7:42 AM, Jeremy Orlow  wrote:

From a quick glance at cmake's website, it seems that it's a build  
system and not a project file generator.  I think it was pretty  
important to us to generate project files so that you can use the  
full power of each platform's IDE and toolchain.


You might want to take a closer look! ;)

CMake generates the desired build environment. So, on Windows it  
generates visual studio projects, on Mac OS it generates Xcode  
projects, and on Linux it generates Makefiles.


You can override this behavior to get some other target.

It can also drive the entire build, but that's not how a lot of people  
use it.


So Cmake seems equivalent to GYP. GYP probably has unique features  
that make it more desireable than Cmake for one reason or another  
(perhaps it's easier to add new platform support or something), but at  
the moment those benefits are not obvious to me.


I'm afraid that as far as I can tell, GYP seems like a case of NIH  
syndrome.


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


Re: [webkit-dev] Please welcome GYP to the our dysfunctional build family

2009-07-13 Thread Mark Mentovai
Generate Your Projects, or GYP, was designed around Chromium's needs.
Maintaining distinct project files for different build environments
and different platforms put a great burden on our team, and was never
intended to be a long-term solution.  We really wanted to have a
single canonical description of the build from which we could generate
the native project files that developers were accustomed to.

One proposed solution was to treat our SCons build as canonical and
have it generate native project files.  This integration never really
came to fruition.  We had SCons generating Visual Studio projects for
simpler projects, but mapping the flexible SCons input language to the
more restrictive descriptions used in IDE project files proved
difficult.

We also considered CMake, and had it demonstrably working for some of
our smaller projects as well.  Unfortunately, transitioning to CMake
would have required moving everything over at once, without allowing
for some existing projects to be maintained "by hand" during a
transition period.  CMake-generated files contain absolute paths, so a
.tar or .zip of the source tree could not be primed with CMake output,
complicating the "bootstrapping" process for new contributors.  A less
significant factor was that CMake introduced an additional binary
build prerequisite, which would have had to have been installed
everywhere.  Python is already a prerequisite for Chromium, so a
Python tool was easier to deploy.

The net result of all of this was GYP, which was designed specifically
to meet Chromium's needs.  We were able to get GYP to generate project
files on all three of our main platforms fairly rapidly, and we
designed for (and eventually executed on some platforms) a staged
transition from the existing build.  GYP helped Chromium solve more
problems in less time than any of the other options that we
experimented with, but it's important to remember that Chromium's
needs are not necessarily the same as those of other projects.  There
are several valid ways to solve the "too many build systems" problem,
and GYP just happens to be one that has worked well for us.

Mark
(Full disclosure: I'm the principal designer of GYP, and would be
happy to discuss it in further detail)

Brent Fulgham wrote:
> So Cmake seems equivalent to GYP. GYP probably has unique features that make
> it more desireable than Cmake for one reason or another (perhaps it's easier
> to add new platform support or something), but at the moment those benefits
> are not obvious to me.
> I'm afraid that as far as I can tell, GYP seems like a case of NIH syndrome.
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Please welcome GYP to the our dysfunctional build family

2009-07-13 Thread Peter Kasting
On Mon, Jul 13, 2009 at 12:24 PM, Mark Mentovai  wrote:

> We also considered CMake, and had it demonstrably working for some of
> our smaller projects as well.
>

BTW, Mark's list of issues with CMake is non-exhaustive (we can share more
if desired), but we're not trying to slag CMake - it's a good tool in a lot
of ways, it just didn't happen to be the right fit for us.

So perhaps the takeaway other ports should have from all this is not that
we're selling GYP as the be-all, end-all build tool for everyone, we're
simply noting that since it's in the tree and we're maintaining it, if other
people want to make use of it too, they'd be welcome if it fits their needs
the way it fits ours.

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