IETabPlus(旧:CorelIETab)を自分でコンパイルするときのメモ

いろいろ手間取ったのでメモっとく。
順番とかあまり関係なく手順としては整理されていないモノなので参考にする方は注意。

ビルドに必要だったもの

  • Visual Studio (C++) 2010 Professional (SDKとかいろいろ自分で準備したらExpressでもいけるかも)
    • 型推論などの先進的なC++文法使ってるので、VS2008じゃコンパイルできない。
    • 自分はVS2010Proの評価版でやってみた。
    • VS2010 Express でもチャレンジしてみたが、いろいろコンパイルエラーがでたので挫折。
  • Gecko-SDK (またの名を XULRunner SDK
    • 以下のページからダウンロード。ちなみに日本語ページには最新のSDKへのリンクが無いので英語ページから。
    • Gecko SDK - MDC
  • IETab Plus のソースコード
  • PCRE(Perl Compatible Regular Expressions)というやつが必要。

本体のビルド前にPCREをコンパイル

  • PCREのソースは、以下のページのDownloadリンク(SourceForge.net)
  • PCRE - Perl Compatible Regular Expressions
  • Windowsでは、configure && make && make install できないので、手作業でそれと同じことをやる。
    • 手順はダウンロードしたPCREのソースの中の NON-UNIX-USE ってファイルにも書いてある。
    • config.h.generic をコピーして config.h という名前で保存
    • pcre.h.generic を pcre.h という名前に変更
    • pcre_chartables.c.dist をコピーして pcre_chartables.c という名前で保存
    • VC++起動して pcred って名前のプロジェクト作る。
    • pcre_*.c って名前の以下のソースコードを1個づつコンパイルしていって、pcred.lib を作る。
    • コンパイルするとき、プリプロセッサの定義で、 HAVE_CONFIG_H を指定擦る必要あり。

これで、本体のコンパイル準備完了。

IETab Plus 本体コンパイル時の注意点

  • ソースコードの中に記述されているコメントの中国語文字コード(GB18030?)が影響してコンパイルが通らないので、コメントをバッサリ削る。
  • Gecko-SDK や、PCRE の Include, lib へのパスを通しておくのを忘れないこと。
    • これを忘れると、リンカー系のエラーが出る。
    • プロジェクトのプロパティで、ランタイムライブラリは マルチスレッド(デバッグ)DLL にする。 /MDd あるいは /MD
    • コンパイルに成功すると、CoralIETab\Firefox\extensions\ietab@ip.cn\plugins フォルダの中に

ブラウザプラグインのdllが生成される。

コンパイルしたpluginのFirefoxへのインストール方法

  • ブラウザpluginは、拡張機能(アドオン)と一緒に配布できるようになっている。
  • 各アドオンのフォルダ直下に、plugins フォルダを作って、そこに plugin 本体のdllを格納しておけば、ブラウザが勝手にpluginをロードしてくれるっぽい。
  • CVSで取得したソースでは、extensionフォルダの中にアドオンを構成するファイルが格納されているので、それらのファイルを、CorelIETab\Firefox\extensions\ietab@ip.cn にコピーして、あげれば、アドオンとして利用可能な状態となる。

*1:拡張子注意