Hi all, please forgive my crappy knowledge of C, etc. in advance... ;)
In updating my osaterminology package to support Tiger, I've added a new
function, OSAGetSdef(), to its OSATerminology.so extension [1]. To allow the
extension to build on older OSes, I've inserted an #ifdef as shown:
static PyObject *
PyOSA_GetSdef(PyObject* self, PyObject* args)
{
#ifdef AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
...
err = OSACopyScriptingDefinition(&fsref, 0, &sdef);
...
return res;
#else
/*
Return None when sdef is unobtainable.
Client can then call OSAGetTerminology() instead.
*/
Py_INCREF(Py_None);
return Py_None;
#endif
}
But now I realise this doesn't help in making a compiled extension work across
different OSes, so I obviously need to do something more/else.
Obviously the extension needs to be built on Tiger to provide sdef support, but
what should I do to ensure that, say, applications containing that binary
extension will still work OK when run on earlier OSes? For example, should I
include both extension builds in the osaterminology package and have it import
the appropriate one according to OS version, or is there a better/more
elegant/official way of doing it?
Many thanks,
has
[1] This is a modified version of OSATerminology.so that's bundled in the
osaterminology package, btw; I don't use the original copy in lib-dynload as
it's buggy.
--
http://freespace.virgin.net/hamish.sanderson/
_______________________________________________
Pythonmac-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/pythonmac-sig