Scintilla/Building Scintilla

Last-modified: 2008-03-07 (金) 19:58:17

Scintillaのビルド

ScintillaまたはSciTEをビルドするには、ScintillaおよびSciTEディレクトリの両方にあるREADMEファイルを見よ。
WindowsではGCC 3.2、Borland C++またはMicrosoft Visual Studio .NETのためのビルド手順がある。
Visual C++ 6でScintillaをビルドするためのメークファイルscintilla/win32/scintilla_vc6.makがあるが、SciTE用はない。
GTK+用ではGCC 3.1を使うべきである。
GTK+ 1.2xと2.0xがサポートされる。
インストールされたGTK+バージョンは自動的に検出されるべきである。
GTK+ 1とGTK+ 2の両方がある場合、GTK+ 1.xを要求するためにはコマンドラインでGTK1を定義する。

スタティックリンク

Windowsでは、Scintillaは.DLLファイルのダイナミックライブラリを通常使う。
もし、アプリケーションの.EXEまたは.DLLファイルにScintillaを直接リンクしたい場合、STATIC_BUILDプリプロセッサシンボルを定義し、Scintilla_RegisterClassesを呼び出す。
STATIC_BUILDは、あなたのコードで定義されたDllMainと競合するDllMain関数をコンパイルすることを防ぐ。
Scintilla_RegisterClassesはあなたのアプリケーションのHINSTANCEを受け取り、ウインドウクラスで定義された"Scintilla"が登録されることを確実にする。
マージンで使われる右矢印カーソルは、scintilla/win32/platfromRes.hで400に定義されたIDがIDC_MARGINで、Scintillaがあなたのアプリケーションリソースにscintilla/win32/Margin.curファイルに追加し、表示される。

Scintillaに解析器を確実にリンク

使用されるコンパイラとリンカによっては解析器は取り除かれるかもしれない。
スタティックライブラリをビルドするとき、これはたいてい引き起こされる。
解析器がリンクされることを保証するため、Scintilla_LinkLexers()関数を呼ぶとよい。

解析器のセット変更

Scintillaの解析器のセットを変更するため、scintilla/srcディレクトリから解析器のソースファイル(Lex*.cxx)を追加および削除する。そして、srcディレクトリからsrc/LexGen.pyスクリプトを実行し、makeファイルとKeyWords.cxxを更新する。
LexGen.pyはPython 2.1以降を要求する。
もしPythonにアクセスできない場合は、簡単な方法として他の解析器のパターンを参考にKeyWords.cxxを手で編集することができる。
重要なことはあなたの解析器のソースコードのLexerModule lmMyLexer(...);に対応するLINK_LEXER(lmMyLexer);をインクルードすることである。