[Python-Dev] Evaluated cmake as an autoconf replacement

David Cournapeau cournape at gmail.com
Wed Apr 8 04:11:33 CEST 2009


On Wed, Apr 8, 2009 at 6:42 AM, Alexander Neundorf
<alex.neundorf at kitware.com> wrote:

> What options ?

Compilation options. If you build an extension with distutils, the
extension is built with the same flags as the ones used by python, the
options are taken from distutils.sysconfig  (except for MS compilers,
which has its own options, which is one of the big pain in distutils).

>
> Can you please explain ?

If you want to stay compatible with distutils, you have to do quite a
lot of things. Cmake (and scons, and waf) only handle the build, but
they can't handle all the packaging done by distutils (tarballs
generation, binaries generation, in place build, develop mode of
setuptools, eggs, .pyc and .pyo generation, etc...), so you have two
choices: add support for this in the build tool (lot of work) or just
use distutils once everything is built with your tool of choice.

> It is easy to run external tools with cmake at cmake time and at build
> time, and it is also possible to run them at install time.

Sure, what can of build tool could not do that :) But given the design
of distutils, if you want to keep all its packaging features, you
can't just launch a few commands, you have to integrate them somewhat.
Everytime you need something from distutils, you would need to launch
python for cmake, whether with scons/waf, you can just use it as you
would use any python library. That's just inherent to the fact that
waf/scons are in the same language as distutils; if we were doing
ocaml builds, having a build tool in ocaml would have been easier,
etc...

David


More information about the Python-Dev mailing list