viernes, julio 06, 2007

[swig] Formato del fichero de interfaz

Una cosa que no esta bien explicada, o al menos no como un punto en la documentación (o al menos no lo he visto) que es el formato del fichero de interfaz, y una lista con las directivas soportadas.

En el fichero hay una serie de bloques que el formato [etiqueta] %{ %}.
Donde [etiqueta] puede ser:

  • %runtime
  • %header
  • %wrapper
  • %init
  • %inline
Si no se pone la etiqueta, estamos ante un bloque de tipo header.
El '%' es porque es el formato de las instrucciones para swig.
Por ejemplo el nombre del modulo en python se especifica con %module.

Todas esas etiquetas, con la excepcion de inline) sirven para incluir codigo que será includo en el fichero generado para el hacer el wrapper. No se parsean ni se generan los wrappers.
La excepción es inline: el codigo inline se da al compilador de C y a swig.

Un ejemplo de uso de inline lo tenemos en el primer ejemplo de swig: simple. Como no existe un header se meten las declaraciones en un bloque inline.

Si por el contrario tenemos un header, lo normal será usar el bloque %header y luego ya a continuación indicar las funciones para las cuales queremos generar los wrappers.

No hay comentarios: