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

Maciej Stachowiak mjs at apple.com
Tue Apr 20 02:13:22 PDT 2010

On Apr 16, 2010, at 7:39 PM, Maciej Stachowiak wrote:

> On Apr 16, 2010, at 7:17 PM, Bill Hoffman wrote:
>> It is as native as we can make it.   However, we do call cmake during
>> the build at some points, to overcome shortfalls of the build tool.
>> Also, to re-run cmake if any of the input files change. Also, basic
>> system commands like cp can be done with cmake -E copy_file so it is
>> portable.
> 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.

Here is what I have learned about this, and unfortunately it is bad  
news for CMake:

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.
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.

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.


More information about the webkit-dev mailing list