[Feature:trunk] C API reference with Doxygen

Yuguiです。

常々、C APIリファレンスをDoxygenで作りたいと思っていました。YARVで呼び出
ã—äº‹å‰æ¡ä»¶ã‚’æŒã¤ã‚ˆã†ãªé–¢æ•°ã‚‚ã‹ãªã‚Šå¢—ãˆãŸã“ã¨ã§ã™ã—ã€ãã†ã—ãŸæƒ…å ±ã‚’æ›¸ã„ã¦
ãŠã‘ã‚‹ã¨è§£æžã‚‚ã—ã‚„ã™ãã¦ç´ æ•µã§ã™ã€‚

そこで、添付のような形でDoxygen化を試してみました。むやみに全部の関数に
Doxygenコメントを書こうとは思っていませんが、要所要所だけでも書いて知識
を明文化 & 共有したいのですが、どうでしょうか。
採用を検討していただければ幸いです。

== 使い方

  • ./configure時にMakefileと一緒にDoxyfileが生成されます
  • make install-capiとすると/usr/local/share/doc/ruby/html かどこかにAPI
    リファレンスがインストールされます。

== 書き方
/**

  • rdoc
    *–
  • doxygen description
    *++
    */

のように、/**で始まるコメントを処理します。(Doxygenの仕様)
また、rdocによるRubyレベルAPIのリファレンスと共存するために、rdocの非ド
キュメント指定"–" … “++” で括られた部分をDoxygenに渡すようになっています。

対応するrdocãŒãªã„é–¢æ•°ã®å ´åˆã¯
/**
*–

  • description
    *++
    */

と書けます。また、RDoc::Parser::Cがrdocと間違えるようなコンテキストでな
ければ単に /** description */ のように書けます。

== 制限
処理にそれなりに時間が掛かります。一般ユーザーには必要ないドキュメントで
もありますし、make installではmake install-capiは行わないようにしてあり
ます。

また各ファイルのリビジョンを取得するために、subversionまたはgit svnで
バージョン管理されていることを前提としています。(tool/file2lastrev.rb)
まつもとさんのstgit環境と共存できるかどうかが心配なのですが、stgitとsvn
はどういう形で連携なさってますか?

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:37494] [Feature:trunk] C API reference with
Doxygen”
on Thu, 18 Dec 2008 18:14:37 +0900, “Yugui (Yuki S.)”
[email protected] writes:

|e$B$^$?3F%U%!%$%k$N%j%S%8%g%s$r<hF@$9$k$?$a$K!"e(Bsubversione$B$^$?$Oe(Bgit svne$B$Ge(B
|e$B%P!<%8%g%s4IM}$5$l$F$$$k$3$H$rA0Ds$H$7$F$$$^$9!#e(B(tool/file2lastrev.rb)
|e$B$^$D$b$H$5$s$Ne(Bstgite$B4D6-$H6&B8$G$-$k$+$I$&$+$,?4G[$J$N$G$9$,!"e(Bstgite$B$He(Bsvn
|e$B$O$I$&$$$&7A$GO"7H$J$5$C$F$^$9$+e(B?

e$B$R$H$D$N%G%#%l%/%H%j$re(Bsvne$B$He(Bgit(stgit)e$B$NN>J}$G4IM}$7$F$$$^$9!#e(B
e$B$G$9$+$i!"%j%]%8%H%j$+$i$N<h$j9~$_$Oe(Bsvne$B%3%^%s%I$G9T$C$F$$$^e(B
e$B$9$+$i!"LdBj$O5/$-$J$$$H;W$$$^$9$h!#e(B