[Distutils] Duelling SWIG patches

Greg Ward gward@python.net
Fri, 23 Jun 2000 22:03:41 -0400

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...

Greg Ward - Linux nerd                                  gward@python.net
I don't believe there really IS a GAS SHORTAGE.. I think it's all just
a BIG HOAX on the part of the plastic sign salesmen -- to sell more numbers!!