tak*_*age 9 javascript binding webkit idl
我不得不承认我是WebKit的新手,所以提出正确的问题并不容易.
我所拥有的是来自WebKit.org的WebKit .它更新,构建,我可以调试 - 我在Windows上工作.
我感兴趣的是如何为我拥有的某些IDL文件生成存根文件.我理解高级图片:
我在"WebCore.gypi"中指定了我的IDL文件.我已经在"WebCore.gyp"中指定了我的IDL文件的路径.显然这还不够,因为构建WebKit不会为我的IDL文件生成存根文件.
我曾经怀疑过,我的IDL文件可能包含未定义的属性,但一切似乎都很好.
有小费吗?另外,你知道任何明确的"如何"?
谢谢!
编辑130206:
我挖了一些,显然WebKit与几个构建系统交互; 例如GYP用于Chromium.我老实说没有想到复杂性,所以我没有提到我需要为Safari生成绑定,它具有不同的构建系统,因此它自己独特的"如何".那么,现在的问题是,Safari构建系统如何工作?我在哪里需要放置我的IDL文件?谢谢!
好吧,我可以告诉你是什么帮助了我.不幸的是,我仍然找不到任何文档,因此涉及到大量的试验和错误.
如果要为Safari生成JS绑定,则必须:
'DerivedSources.make'可以在'\ WebKit\Source\WebCore \'中找到.在此make文件中,您必须指定以下内容:
构建WebKit.如果在此步骤之后您仍然看不到您的JSXXX.h和JSXXX.cpp文件(为每个XXX.IDL文件生成),那么您必须检查IDL文件.
在我的情况下,在构建步骤后没有生成任何内容,我收到如下错误:
6>下一个令牌应该是实现,但模块MyModule上的MyModule {
6> IDLParser.pm:750 at /WebKit/Source/WebCore/bindings/scripts//IDLParser.pm line 129.
6> in/WebKit/Source/WebCore/MyFolder/XXX.idl at /WebKit/Source/WebCore/bindings/scripts//IDLParser.pm line 173.
6> /WebKit/Source/WebCore/DerivedSources.make:1024:目标`XXX.h'的配方失败
6> make:* [XXX.h]错误255
问题是每个IDL接口都包含在一个名为MyModule的模块(命名空间)中,如上所示.我删除了所有这些模块(保持接口当然),并在下一次构建时生成的一切都很好.使用您自己的模块名称似乎不像将IDL接口包含在内一样简单; 最有可能你被迫编写自定义绑定来实现这一点(WebKit团队不推荐).
所以这对我来说,希望它对你也有帮助.