build.xml で gtags

どうもりんこです。
桃屋の辛いけど辛くないような辛いかも的なラー油を西友で見つけて,
以前から話題になっているのは知っていたので,おぉこれかと1つかごに入れ,
他の商品をみていたのですが,ん? と思い,モトカノ用に1つ,
それから,明日,両親が東京に来るのでそのときに渡そうと思い,さらに1つ,
で,都合3つ購入したわけで,んで,さっそくご飯にかけて食べたんですが,
うめぇよ。にんにく強烈! うめぇ。おすすめです。
使う際は,ちゃんと混ぜてから使いましょう。下の方にぎっしり具がたまってるので。
ちなみにこれね。
http://www.momoya.co.jp/products/detail/rayu_sukoshikarai.php
餃子に使うとめちゃうまそうだなぁ。

gtags するのが面倒ですね。

コンパイルやらテストの実行は,Meadow 上から,smart-compile.el 経由のantを使って
できるようにしてあるのですが,タグファイルの更新をするのは,
シェルからやっていたわけで,これが面倒なわけで,build.xml 使って,
ant -emacs -f path/to/build.xml tag.uptdate
とかやりてーなぁーと。

結論

ant のドキュメントを眺めていて以下の用にすることで目的を達成することが出来ました。
gtags.exe, global.exe へのパスはそれぞれ自分の環境に合わせて変更するんだよ!
以下を,build.xml に追記。

  <!-- gtags -->
  <property name="gtags" location="e:/cygwin/usr/local/bin/gtags.exe"/>
  <property name="global" location="e:/cygwin/usr/local/bin/global.exe"/>

  <target name="tag.init">
    <exec executable="${gtags}"/>
  </target>

  <target name="tag.update">
    <exec executable="${global}">
      <arg value="-u"/>
    </exec>
  </target>

余談

gtags には,-i オプションがあってインクリメンタルにタグファイルを更新してくれるらしい。
しかし,man によると,global -u を使うべしみたいな感じで書いてあるので,
global -u を使っています。
以下,man gtags から引用。

-i, --incremental
       Update tag files incrementally. You had better use global(1) with the -u option.

以下は,man global から引用。

-u, --update
       Locate tag files and update them incrementally.


というわけで,マニュアル的には,global -u を使うのがいいみたいなので,
global -u 使っておきました。

まとめ

これで,C-cC-c して,tag.update をすればオッケー牧場。
あとは,可能なら,定期的になんかをトリガーにして,バックグラウンドで
更新してくれればいいんだけどねぇ。あるとすれば,
コンパイルが通った時で,かつ,前の更新から一定時間たっている時か。