At 03:46 PM 11/3/2005 -0800, Dethe Elza wrote:
But it doesn't properly support C++, or the use of a compiler other than the one that built Python itself. Those features are absolutely required for VPython.
I'm not a distutils/setuptools expert (though I'm willing and eager to become one rather than struggle with autoconf any further), but can anyone tell me if Jonathan's statement is even true?
I'm willing to create a parallel setuptools-based builder just for OS X use, since the same compiler problem isn't an issue on OS X, but can I use distutils with C++ code?
As far as I know, yes. I don't know what is meant by "properly support C++", though. If the meaning is "support static initializers when Python was not built with a C++ compiler and runtime", then that statement might be correct, but if that is the issue then no other method of building (short of rebuilding the Python executable) would fix the problem anyway, and distutils is neither the problem nor the solution in that case.
As for the "use of a compiler other than the one that built Python itself", that's not correct either. For example, it is common to build Python extensions for Windows using distutils and the MinGW compiler, even though Python itself is built with Visual C++. Also, it's possible to get the distutils to build using the freeware version of Visual C++ as well.
Alas, I am not an OS X or C++ expert, so I'm unlikely to be able to give you much guidance, other than pointing you to the distutils docs:
As far as I'm aware, it should be sufficient to list the C++ (.cpp) files in 'sources', and to specify the various libraries, defines, etc. as shown on the page above. (Creating a useful cross-platform setup.py will of course require conditional code to change the libraries, macros, or other values as appropriate.)