Re: [webkit-dev] CMake vs. Apple's build farm

2010-04-20 Thread Bill Hoffman

On 4/20/2010 5:13 AM, Maciej Stachowiak wrote:


1) None of the Mac builders have CMake installed.
2) The organization that maintains the Mac builders is not willing to
let teams use any build systems to build that do not come with the OS,
or to install any custom binaries on the builders, because builds need
to be reproducible.
So, long term is there a way for CMake to come with the OS?  I mean 
gmake is part of the OS, python seems to be OK, how does a tool get 
promoted to such a level?



3) CMake is not part of the standard Mac OS X install for any shipping
version of Mac OS X.
4) LLVM compiles using a separate Makefile-based (and apparently
autoconf and autogen based) build system in OS builds.
5) LLVM uses CMake to build on Windows.
6) The build organization is more willing to install custom tools on
Windows builders.

I think this rules out using CMake to build the mac port. Even if we got
it set up, we'd need to maintain some kind of parallel build system for
production builds via the build farm, which would negate the benefit. It
might be possible to use CMake for Apple's Windows port, but if we
switch away from native project formats at all, ideally we'd like to
switch both ports to the same build system.
I am wondering if you could include the sources to CMake inside the 
source tree for the Mac build farms.  CMake really only depends on the 
C++ compiler, and that is part of the OS.  You could use CMake's 
bootstrap script to build it.   Then run that CMake to generate the 
build.  I could help you create a lean CMake that would only build the 
features used for the build of WebKit.


Since gyp does not require any special software to be installed merely
to build, it seems like a more plausible option at the moment.




Note: this is not to hate on CMake, I just don't want to end up in a
position where we have to maintain two parallel build systems for the
Mac port, or fight with other organizations about the operation of the
build farm. Requiring CMake to be installed at build time seems like a
showstopper from that point of view.

So, rather than install one program, Apple would rather have one of its 
developers maintain a forked build system.  I would of course like to 
see this change.   I would think it would be possible to change this. I 
suppose if enough tools that Apple uses move to CMake, it would become 
OK.  Anyway, what do think about building CMake with the project?


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


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Bill Hoffman
On Fri, Apr 16, 2010 at 6:38 PM, Peter Kasting pkast...@google.com wrote:
 On Fri, Apr 16, 2010 at 3:35 PM, Maciej Stachowiak m...@apple.com wrote:

 I'm curious if the Chromium folks who created Gyp had any specific reason
 that they ruled out CMake as an option. (I have heard that it was considered
 and rejected.)


I belive I can answer that.  During my talk at google, I met with with
Mark Mentovai and talked to him about Gyp and CMake.  The main thing
that he was trying to avoid was the requirement that CMake be
installed for the build.  That is true, CMake does have to be
installed.  However, CMake is installed on more an more systems.   The
cmake.org site has about 2K downloads per day, and most linux distros
include CMake.   With KDE using CMake, it has become pretty easy to
get.   Apple is also using CMake for the LLVM project, so it should be
installed and accepted at Apple.  I worked with Doug Gregor of the
LLVM team to help him convince the Apple testing folks to allow for
CMake to be installed.

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


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Bill Hoffman
On Fri, Apr 16, 2010 at 9:45 PM, Maciej Stachowiak m...@apple.com wrote:
 FWIW, I don't have CMake installed, and I have everything a typical Apple
 developer would have and then some. I'm running SnowLeopard and the latest
 Xcode. CMake is also not installed by default on Windows and I am not sure
 if it comes with the cygwin distribution we use.


It can come with cygwin, and nothing is installed on Windows by
default, not even the compiler...   Macports has CMake, and of course
we have binaries at cmake.org.

 When you say installed, does that mean it *has* to be in some system
 location? Could it be installed somewhere in the WebKit build tree? Our
 scripts download certain needed tools and libraries by default, so at least
 from the WebKit POV this is not necessarily a showstopper.


It can be installed anywhere.   There are binaries for all marjor
OS's on www.cmake.org.  It is setup to run from any directory, so you
don't need root or anything to install.

http://www.cmake.org/cmake/resources/software.html

 Also: how hard is the dependency on being installed? Is this a solvable
 problem if it turns out to be a showstopper for some folks?


It has to be installed, if this is a show stopper, then it is a show stopper.

 And finally, I'd still like to hear from the Chromium folks whether there
 were any other issues. This one seems fairly minor.

I would as well.  :)

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


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Bill Hoffman
On Fri, Apr 16, 2010 at 9:57 PM, Nico Weber tha...@chromium.org wrote:
 This is from an earlier thread on this issue on webkit-dev:

 
 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.

I think you could do it part way.  CMake has a new feature called
external_project that allows you to download/configure/build packages
using any build system.

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


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Bill Hoffman

 We can make binaries available through a convenient download script
 (possibly one that gets a source drop and builds it) if we have to. In fact,
 when WebKit first switched to Subversion, for a while you had to get your
 own copy to even check out the tree.

Sounds good.

 All I'm saying is that it's not *currently* installed out of the box on Mac
 OS X.

Sure.


 So by installed we're just talking about the fact that it's an executable,
 not a script?
Yes, it is a binary.
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Bill Hoffman
On Fri, Apr 16, 2010 at 10:04 PM, Adam Treat tr...@kde.org wrote:
 On Friday 16 April 2010 09:58:17 pm Bill Hoffman wrote:
  Also: how hard is the dependency on being installed? Is this a solvable
  problem if it turns out to be a showstopper for some folks?

 It has to be installed, if this is a show stopper, then it is a show
 stopper.

 To be clear, it just has to be in the path, right?  Which I think could be
 managed ;)


No, it is much more than the path.  CMake needs to be around during
the build, and at configure time.  It does system introspection, also
with the makefiles it includes a depend generator.   So, to be clear,
you have to install and run CMake on the machine where you are
building the software.

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


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Bill Hoffman
 Calling cmake during the build would likely be a showstopper for the Mac
 port. As far as I know, Apple's build farm does not have CMake installed (at
 least not on older build trains). And it's not easy to convince the build
 engineers to install custom build tools.


I am told they have it now for LLVM.   But, I do not work for Apple,
so I can not verify that.

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