CMake SoC Proposal

From: Date: Thu, 20 Mar 2008 00:57:57 +0000
Subject: CMake SoC Proposal
Groups: php.internals 
Request: Send a blank email to internals+get-36209@lists.php.net to get a copy of this message
Hi All,

One of the proposals for Google Summer of Code is a replacement of the autoconf part of our current build system. This email is a clarification of some of the concerns that may arise if it is accepted as a project.

The current autoconf system is written using the macro processing language known as m4, this itself causes untold problems for both new and old developers alike and is a significant barrier to entry for anyone either wanting to build an extension or make a change to the build system.

There would also be support for several compilers, using Mingw or Intel’s compiler could become a reality. There are probably some slight code tweaks required to achieve this but a user will be able to chose their compiler.

Furthermore, autoconf is only used for our Unix based systems, for Windows we’re currently using some cscript files. These don’t provide nearly as much functionality and configuration choices as their autoconf counterparts with a large amount of the Windows build scripts simply being hardcoded.

---

Here is a quick run down of some of the features of CMake and tools associated with it:

• A single configure script that would be used regardless of the OS
• A much simpler scripting language
• Generates native build files (make, XCode, Visual Studio 6, 7.1, 8)
• Use a build directory so that all build related files are outside the main source tree, no more pollution of your checkout.
• Testing support is included and results from these tests can automatically be submitted to our server.
• CDash would integrate with CMake and CTest and aggregate the results from the tests showing failing tests on the various systems.
CMake's own dashboard can be seen at http://public.kitware.com/dashboard.php?name=cmake
• CPack could be used as a new package system as it uses the same scripting language as CMake to abstract packaging. These aren’t just tarball but also Windows and OS X installer packages.
• Autoconf can live in harmony with CMake even after a transition, we’re not talking about replacing it outright immediately.


Several large projects have already successfully made either partial or complete transition to CMake:

• KDE 4.0
• MySQL on Windows
• libgd 2.1+

Bill Hoffman of Kitware who produce CMake and the related tools have offered their assistance in our transition, including adding ports to any unsupported operating systems or features that would prevent us from currently doing the move.

---

For those concerned about the lack of CMake support on your operating system of choice you’ll find that most recent Linux distributions provide a copy of CMake and if not then Kitware provide the binaries themselves. These can be installed by non-root users without any issue.

Another alternative would be to simply bundle CMake with PHP, it’s currently under a BSD license so the only problem here would be the extra space taken up in the package.

Debian, Fedora and FreeBSD all have recent versions of CMake available. For Windows and OS X binaries are provided on the CMake site.

Thanks,
Scott & Pierre-Joye


Thread (8 messages)

« previous php.internals (#36209) next »