XPCOM関連メモ

Firefox1.5での自作C++ xpcomの動かしかた

先生に聞いたら教えてくれた。さすがは本家。
自作XPCOMは,mozillaソースtop/simpleに配置したと仮定

Makefile.inの先頭は
DEPTH = ..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
のようにする)

  • allmakefiles.shに追加。

add_makefiles "
Makefile
...
simple/Makefile
"
のように追加。

  • mozillaソースtopで,./configure

これで,Makefileが生成される。
cd simple;make
でmake できる。

ちなみにjavascriptXPCOMは,今までどおりの方法でOK.

Firefox1.5ビルド時の注意

基本はここ。
http://developer.mozilla.org/en/docs/Build_Documentation
.mozconfigだけ注意。
ac_add_options --enable-debug
ac_add_options --disable-static --enable-shared
ac_add_options --enable-application=browser
のようにする。sharedビルド,--enable-applicationを忘れないように。
また,mk_add_options MOZ_OBJDIR=
は設定しないほうがいい。xpcomコンパイルがうまくいかなくなるかも。

  • mozillaソースのホーム/Makefileは,適当な名前に変えておいたほうがいい。make と間違えてタイプすると,ヘッダファイルなどが全部消える…で,下手すると再コンパイル
  • コンパイル後の成果物は必ずバックアップ取ること。

mozilla文字列

http://www.mozilla-japan.org/projects/xpcom/string-guide.html
独自型が定義されまくり。もはやC++というかmozilla言語。

その他

色んなクラスが定義されているが,意味不明になってきた。
lxr.mozilla.orgで使われている例を適当にコピペするしかない。
しかも,自動的に生成されるヘッダファイルは,lxrで引っかからないらしい。なので,定義が見つからず途方にくれることも。
メモ:http://lxr.mozilla.org/seamonkey/source/embedding/minimo/app/mozilla_api.cpp#438

確かに,この授業はOSSのソース読む勉強になる気がする。Mozillaを題材でなく,カーネルを題材に学んでみたかった気がする。