gedit上でのValaコード記述に便利なvtgのインストールメモ(2009/7/3現在)
GNOMEのテキストエディタgedit上でVala言語のプログラムを記述するのに便利なvtg(Vala Toys for gEdit)(code.google.com/p/vtg/)というプラグインがある。
依存ライブラリについて
このプラグインはMonoDevelopなどと同様画像のように「.」文字を入力したときに候補シンボル一覧を表示してその中から選ぶことができるようになっている関係で、GtkSourceCompletion(gtksourcecomple.sourceforge.net/)というライブラリを用いる。しかし、このライブラリはディストリのパッケージになっていないことがほとんどで、手動で入れるか自分でパッケージを作成するかのどちらかとなる。
今回Mandriva Linux向けのパッケージを作成し、別館の配布ページに公開した。
(2014/10/12)配布ページは削除済み。
この他、Valaのライブラリの開発パッケージも必要となる。
vtgのダウンロードとビルド
(2009/9/19)バージョン0.5.0がリリースされているため、以下の作業を行う必要はなくなっている。以下、以前の内容となる。
2009/7/3現在、古いバージョンのValaとGtkSourceCompletionを対象にしたバージョン0.4.1が最新のリリース版となっているが、両方の最新バージョンに対応した更新はSubversion版で続いているため、ここではSubversionを用いてソースの取得を行うことにする。下のコマンドはプロジェクトページからのコピペ。
$ svn checkout http://vtg.googlecode.com/svn/trunk/ vtg-read-only
これでvtg-read-only以下のソースツリーの複製が得られる。
ビルドまでの道のり
$ cd vtg-read-only/ $ ./autogen.sh ./autogen.sh: line 9: gnome-autogen.sh: そのようなファイルやディレクトリはありません
中のautogen.shはうまく動かないため、手動で設定する。
$ autoreconf configure.ac:8: required file `./compile' not found configure.ac:8: `automake --add-missing' can install `compile' configure.ac:10: required file `./config.guess' not found configure.ac:10: `automake --add-missing' can install `config.guess' configure.ac:10: required file `./config.sub' not found configure.ac:10: `automake --add-missing' can install `config.sub' configure.ac:4: required file `./install-sh' not found configure.ac:4: `automake --add-missing' can install `install-sh' configure.ac:4: required file `./missing' not found configure.ac:4: `automake --add-missing' can install `missing' gen-project/Makefile.am: required file `./depcomp' not found gen-project/Makefile.am: `automake --add-missing' can install `depcomp' configure.ac:10: required file `./ltmain.sh' not found autoreconf: automake failed with exit status: 1 $ autoreconf --install configure.ac:8: installing `./compile' configure.ac:4: installing `./install-sh' configure.ac:4: installing `./missing' gen-project/Makefile.am: installing `./depcomp' $ ./configure --prefix=[インストール先接頭辞] (中略) config.status: creating ui/Makefile config.status: creating images/Makefile config.status: error: cannot find input file: po/Makefile.in.in $ intltoolize $ ./configure --prefix=[インストール先接頭辞] (中略) ---{ vtg 0.5.0 }--- prefix: [インストール先接頭辞(「--prefix=」の値)] sysconfdir: ${prefix}/etc localstatedir: ${prefix}/var C Compiler: gcc CFLAGS: -g -O2 Vala Vapidir: /usr/share/vala/vapi Enable gen-project: yes Enable vsc library: yes Enable vtg: yes Enable vsc-shell: yes (正常終了・後はmake, sudo make install-stripと続ける)
色々試した結果「autoreconf --install」とintltoolizeを実行すればよいことが分かった。
インストール先指定は実際には--prefix=/usrのようにgeditと同じインストール先に指定することになる。
もしValaが/usr以外にインストールされている場合はconfigureスクリプトに--with-vapidir=[Valaのインストール先]/share/vala/vapiオプションも指定し、configureスクリプト実行後の「Vala Vapidir」を見て設定を確認する。
一般ユーザ権限でのインストール
一般ユーザ権限でホームディレクトリの中のgedit用プラグインディレクトリへインストールを行うこともでき$ ./configure --prefix=${HOME}/.gnome2/gedit/plugins $ make $ make install-strip libvtgdir=${HOME}/.gnome2/gedit/plugins
のようになる。
Vala 0.7.4によるビルドエラー(Valaコンパイラの不具合)とその対処
リビジョン314(2009/7/3)の時点では途中でビルドエラーが発生する。gcc -DHAVE_CONFIG_H -I. -I.. -pthread -DORBIT2=1 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gedit-2.20 -I/usr/include/gtksourceview-2.0 -I/usr/include/libxml2 -I/usr/include/gtksourcecompletion-2.0 -I/usr/include/vala-1.0 -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -DPACKAGE_DATADIR=\"/usr/share/vtg\" -include ../config.h -I ../vsc -I ../vbf -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -MT vtgbracketcompletion.lo -MD -MP -MF .deps/vtgbracketcompletion.Tpo -c vtgbracketcompletion.c -fPIC -DPIC -o .libs/vtgbracketcompletion.o vtgbracketcompletion.c: In function ‘vtg_bracket_completion_get_type’: vtgbracketcompletion.c:604: error: ‘vtg_bracket_completion_type_id’ undeclared (first use in this function) vtgbracketcompletion.c:604: error: (Each undeclared identifier is reported only once vtgbracketcompletion.c:604: error: for each function it appears in.) vtgbracketcompletion.c: In function ‘vtg_bracket_completion_register_type’: vtgbracketcompletion.c:610: error: ‘vtg_bracket_completion_type_id’ undeclared (first use in this function) make[4]: *** [vtgbracketcompletion.lo] Error 1 make[4]: Leaving directory `/home/mandrake/rpm/BUILD/vtg-read-only/vtg' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/home/mandrake/rpm/BUILD/vtg-read-only/vtg' make[2]: *** [all] Error 2 make[2]: Leaving directory `/home/mandrake/rpm/BUILD/vtg-read-only/vtg' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/mandrake/rpm/BUILD/vtg-read-only' make: *** [all] Error 2
この件については
http://web.archive.org/web/20110126045318/http://mail.gnome.org/archives/vala-list/2009-June/msg00220.html
に書かれている通りValaの不具合が原因とのことでパッチもあるため、これを適用したVala本体のMandriva Linux向けパッケージを作成し別館の配布ページに公開した。修正済みのValaを用いるとこのエラーは出なくなった。
vtg自体のパッケージも別館の配布ページに公開した。
(2009/9/27)バージョン0.5.0へ更新した。Valaは2010.0のバージョン0.7.6を使用する。
(2014/10/12)配布ページは削除済み。
バージョンは正式リリース版ではないので.specファイルで
%define name vtg %define version 0.5.0 %define rel 0.20090703 %define release %mkrel %{rel} %define subrel 1
として「0.5.0-0.20090703.1kkr2009.0」のようになるようにした(リリース番号が「0」で開始される形)。
使用したバージョン:
- Vala 0.7.4
- gedit 2.24.0
- vtg リビジョン 314