[webkit-dev] CMake vs. Apple's build farm
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
> 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
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