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
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php