2013-01-31 6 views
9

私はWebKitに新しいので、正しい質問をするのは簡単ではないことを認めなければなりません。WebKit JSバインディング:ステップバイステップ方法

私が持っているものはWebKit.orgのWebKitです。それは更新、ビルド、私はデバッグすることができます - 私はそれをWindows上で動作させました。

私が興味を持っているのは、私が持っているいくつかのIDLファイルのスタブファイルを生成する方法です。私は、高レベルの絵を理解する:

  1. は、スタブファイル(&の.cppファイルの.h)を生成
  2. IDL言語を使用して、インターフェイスを記述します。
  3. 以前に生成されたスタブファイルにコードを追加します。

IDLファイルを「WebCore.gypi」に指定しました。 "WebCore.gyp"にIDLファイルのパスを指定しました。明らかに、WebKitをビルドするとIDLファイルのスタブファイルが生成されないため、これでは不十分です。

IDLファイルに未定義の属性が含まれている可能性がありますが、すべてがうまくいくように思えます。

ヒント?また、明示的な「How to」を知っていますか?

ありがとうございます!

編集130206:

私はいくつかのより多くの掘りと明らかにWebKitのは、いくつかのビルドシステムと対話します。例えばGYPはクロム用です。私は正直なところ、その複雑さを期待していなかったので、別のビルドシステムとその独自の「方法」を持つSafariのバインドを生成する必要があるとは言いませんでした。 これでSafariのビルドシステムはどのように機能しますか? IDLファイルはどこに置く必要がありますか?ありがとう!

答えて

8

私は何が助けてくれたかを教えてくれます。残念ながら、私は依然としてドキュメントを見つけることができず、多くの試行錯誤が巻き起こっていました。

あなたがサファリのためのJSバインディングを生成する場合は、する必要があります。

  1. 変更] DerivedSources.make "。
  2. IDLファイルが正しいことを確認してください。

'DerivedSources.make'は、 '\ WebKit \ Source \ WebCore \'にあります。このメイクファイル内では、次を指定する必要があります。

  1. 'VPATH'内のフォルダ(IDLファイルを含む)へのパス。
  2. 「BINDINGS_IDLS」内のすべてのIDLファイル。
  3. 「IDL_INCLUDES」内のフォルダへのパスを再度指定します。

WebKitをビルドします。この手順の後でも、IDLファイルを確認するよりもJSXXX.hファイルとJSXXX.cppファイル(各XXX.IDLファイルのgenererated)が表示されません。

ビルドステップと、私はこのようなエラー得た後に私の場合は何も発生しなかった

:モジュールMyModuleという{
6> IDLParser.pm:750での

6>次のトークンを実装する必要がありますが、MyModuleという/WebKit/Source/WebCore/bindings/scripts//IDLParser.pm line 129.
6/WebKit/Source/WebCore/bindings/scriptsの/WebKit/Source/WebCore/MyFolder/XXX.idl // IDLParser。 pm行173.
6 /WebKit/Source/WebCore/DerivedSources.make:1024:ターゲット 'XXX.h'のレシピが失敗しました
6> make:* [XXX.h ]エラー255

問題は、モジュール(名前空間)に囲まれた各IDLインターフェイスが上記のようにMyModuleと呼ばれることでした。私はすべてのモジュールを削除しました(もちろんインターフェイスを保持しています)。次のビルドでは、すべてがうまく生成されました。独自のモジュール名を使用すると、IDLインターフェイスを囲むほど単純ではないようです。おそらくあなたはこれを達成するためにカスタムバインディングを書くことを余儀なくされるでしょう(これはWebKitチームによって推奨されていません)。

それは私のためであったので、それはまたあなたに役立つことを願っています。

関連する問題