On 23 June 2000, Thomas Heller said:
I don't like this patch.
Well, at least you're up-front and honest. ;-)
While I won't argue whether ccompiler is an appropriate superclass for swig, swig shares some important properties:
Swig has command line flags to specify include directories -I<dir>, libraries -l<ifile>, define symbols -Dsymbol like C-compilers. Other options which are maybe usefull for python extensions are -t <typemap file>, -shadow (create shadow classes), -module name (set module name) and maybe more.
All true. *BUT* SWIG doesn't vary across platforms, there aren't multiple SWIG implementations to worry about, and therefore there's no need for an "abstract SWIG interface".
From this I have the impression that swig should be a separate class implemented in swig.py, and there should be distutils command line flags for setting the above options (and also the -c++ option). Although I did not implement them so far.
I'll buy that. I make no claim that my SWIG patch has anywhere near enough support for running SWIG in the real world; I suspect that adding such support will make it grow up into a real class. But that class really has no need to implement the CCompiler interface. Nor should it, since SWIG is not a C compiler: it's a SWIG interface file compiler.
(Sidenote: I also needed a swig-object in build_ext for my setup-script for win32all. I had to extend distutils in the setup-script because there are also exe-files to be built from C++ and swig sources).
I thought I mentioned this recently: there *is* a 'link_executable()' method in MSVCCompiler. If it works, why not use it? If it doesn't work, could you submit a patch instead of implementing your own? (And if the interface specified by CCompiler is insufficient, I'd like to find out *now*!)
As I pointed out in a separate post, there should also be an option to specify C or C++ processing.
Agreed -- yet another good argument for a SWIG class.
If I find time, I will submit a new patch.
Cool. My time is probably better spent learning SWIG. No wait, I mean documenting and testing the Distutils... sigh...