[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pykde
Subject:    [PyQt] Re: Updates to sipdistutils.py
From:       Giovanni Bajo <rasky () develer ! com>
Date:       2009-11-15 12:36:52
Message-ID: 1258288612.3103.40.camel () ozzu
[Download RAW message or body]

Il giorno dom, 15/11/2009 alle 11.39 +0000, Phil Thompson ha scritto:
> On Fri, 13 Nov 2009 20:53:34 +0100, Giovanni Bajo <rasky@develer.com>
> wrote:
> > Hi Phil,
> > 
> > please find attached an improved sipdistutils.py, and the diff against
> > current version for reference.
> > 
> > Modifications:
> > 
> >  * Added command line option to pass arguments to sip. Now you can for
> > instance do: "python setup.py build --sip-opts='-e'" to activate
> > exceptions. Or you can put the "sip-opts='-e'" in a local distutils.cfg
> > file in your source directory.
> > 
> >  * Fixed invocation of sip.exe under Windows. I still maintain that
> > siputils.py should put the full pathname of sip, including extension,
> > under the "sip_bin" in the configuration, but a quick workaround is
> > needed anyway to make sipdistutils work with all versions of sip.
> 
> I consider the extension an implementation detail that shouldn't be
> exposed. 

I need the full pathname to compute the checksum. How do I suggest I
find it out then? Should I iterate over supported extensions until I
find the correct one?

> It won't be .exe for SIP v5.

Out of curiosity, what will it be?

> >  * Consider the sip binary checksum as an implicit dependency for build.
> > This is very useful when switching between different sip versions,
> > because everything is automatically recompiled.
> > 
> > Coming up:
> > 
> >  * As discussed some months ago, I plan to add an option to sip itself
> > to printf() any .sip file it opens. I will then use a dry-run with this
> > option to automatically discover dependencies so to rebuild whenever
> > necessary. This would be a strong improvement over the current state
> > where one must manually list all sip files (theoretically, of all
> > imported modules as well) in the setup.py.
> 
> Applied to the trunk.
> 
> Feel free to send a patch for the documentation :)

Attached. I assumed most distutils users are not familiar with passing
options to distutils' subcommands, so I elaborated on it a little. 

-- 
Giovanni Bajo
Develer S.r.l.
http://www.develer.com


["doc.patch" (doc.patch)]

Index: distutils.rst
===================================================================
--- distutils.rst	(revisione 26185)
+++ distutils.rst	(copia locale)
@@ -23,3 +23,19 @@
 As we can see, the above is a normal distutils setup script, with just a
 special line which is needed so that SIP can see and process ``word.sip``.
 Then, running ``setup.py build`` will build our extension module.
+
+If you want to use any of sip's command-line options described in
+:ref:`ref-command-line`, there is a new option available for the
+``build_ext`` command in distutils: ``--sip-opts``. So you can either invoke
+distutils as follows::
+
+     $ python setup.py build_ext --sip-opts="-e -g" build
+
+or you can leverage distutils' config file support by creating a ``setup.cfg``
+file in the supported system or local paths (eg: in the same directory of
+``setup.py``) with these contents::
+
+     [build_ext]
+     sip-opts = -e -g
+
+and then run ``setup.py build`` as usual.
Index: command_line.rst
===================================================================
--- command_line.rst	(revisione 26185)
+++ command_line.rst	(copia locale)
@@ -1,3 +1,5 @@
+.. _ref-command-line:
+
 The SIP Command Line
 ====================
 


_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic