2012-10-02 10 views
5

Estoy trabajando en la escritura de un componente XPCOM. Tengo mi archivo IDL, es muy simple, que contiene solamente el siguiente:cómo usar xpidl (header.py, typelib.py)

#include "nsISupports.idl" 

[scriptable, uuid(4ead-ba5c-49c9-beb2=64209c7699a)] 
interface nsIPageSummary : nsISupports 
{ 
    boolean saveSummary(in nsIDOMDocument document, 
         out unsigned long numLinks, 
         out unsigned long numImages); 
}; 

he descargado el SDK xulrunner y estoy tratando de generar mis encabezados por medio del siguiente comando desde el directorio que contiene el archivo de arriba (nsIPageSummary. IDL):

~/xulrunner-SDK/sdk/bin/header.py --cachedir = ~/xulrunner-SDK/IDL/-o nsIPageSummary.h nsIPageSummary.idl

Cuando esto pasa, me sale el siguiente mensaje:

$ ~/xulrunner-sdk/sdk/bin/header.py --cachedir=~/xulrunner-sdk/idl -o nsIPageSummary.h nsIPageSummary.idl 
Traceback (most recent call last): 
    File "~/xulrunner/xulrunner-sdk/sdk/bin/header.py", line 497, in <module> 
    idl.resolve(options.incdirs, p) 
    File "~/xulrunner/xulrunner-sdk/sdk/bin/xpidl.py", line 285, in resolve 
    p.resolve(self) 
    File "~/xulrunner-sdk/sdk/bin/xpidl.py", line 255, in resolve 
    raise IDLError("File '%s' not found" % self.filename, self.location) 
xpidl.IDLError: error: File 'nsISupports.idl' not found, nsIPageSummary.idl line 1:0 
#include "nsISupports.idl" 

He verificado que los archivos existen en la carpeta anterior. Estoy utilizando el enlace de MDN (https://developer.mozilla.org/en-US/docs/XPIDL/pyxpidl) como una guía, pero no está ayudando mucho. ¿Cómo uso estas herramientas?

Respuesta

5

Debe definir ~/xulrunner-sdk/idl/ como su ruta de inclusión:

~/xulrunner-sdk/sdk/bin/header.py -I ~/xulrunner-sdk/idl/ ... 

El directorio de caché por otro lado realmente debería haber algún directorio temporal como el documentation sugiere.