Create TOC

2002년 1월 10일

Doxygen

1 Doxygen

Doxygen 는 C++, C, Java, IDL (Corba, Microsoft, and KDE-DCOP flavors), PHP, C# 을 위한 문서화 시스템이다.

source 에 남기는 주석을 이용하여 HTML, LaTex, RTF 포맷의 문서를 출력할 수 있다.

2 다운로드 및 설치

2.1 Doxygen

Doxygen site 에서 platform에 맞는 버전을 다운 받는다.

2.2 Graphviz

Doxygen 에서 document를 생성할 때 class 계층도나 파일 관계도를 그림으로 만들기 위해서 필요하다.

Graphviz site 에서 platform에 맞는 버전을 다운 받는다.

2.3 Html Help Workshop

Doxygen으로 생성한 html을 CHM 으로 만들기 위해서 Microsoft HTML Help Workshop 를 다운받는다.

2.4 DoxBar

Developer Studio 에서 Doxygen을 손쉽게 사용할 수 있는 add-on 모듈.

doxbar site 에서 다운 받을 수 있다.

설치는 doxbar site의 설명을 따라가면 된다.

3 간단한 주석 규칙

주석을 달때 몇가지 style 이 적용되지만 나는 javadoc 스타일을 선호한다. 아래 내용 이외에도 history, todo 에 관한 규칙도 있지만 따로 설명하지 않는다.

3.1 파일에 대한 주석

/**	@file [파일명]
	@brief [파일에 대한 간단한 설명]
*/

/*/////////////////////////////////////////////////////////////////////////////
// Include Headers
*/

/*/////////////////////////////////////////////////////////////////////////////
// Constants
*/

/*/////////////////////////////////////////////////////////////////////////////
// Declare Types
*/

/*/////////////////////////////////////////////////////////////////////////////
// Global Variable
*/

/*/////////////////////////////////////////////////////////////////////////////
// Declare Functions
*/

/*/////////////////////////////////////////////////////////////////////////////
// Implementation
*/

/*/////////////////////////////////////////////////////////////////////////////
// End of file
*/

3.2 함수에 대한 주석

/**	@brief [함수에 대한 간단한 설명]

	@param[in] [파라미터 설명]
	@param[out] [파라미터 설명]
	@param[in,out] [파라미터 설명]

	@return [Return Values]

	@remark [Remarks]

	@sa [See Also]

	@note [Note]
*/
int hello(int x)
{
...
}

3.3 class에 관한 주석

/**	@brief [class 에 대한 간단한 설명]
*/
class Foo
{
...
};

3.4 struct에 관한 주석

/**	@brief [struct 에 대한 간단한 설명]
*/
struct foo
{
...
};

3.5 class, struct 멤버 변수, 일반 변수에 관한 주석

int i;	/**< loop counter */

3.6 매크로에 관한 주석

/**	@brief [macro 설명]
*/
#define FOO(x)   do { ... } while (0)

3.7 Group

/// @defgroup GROUPNAME description
//@{

/** @defgroup SUBGROUP1 desc
@ingroup GROUPNAME
*/
//@{
...
//@}

/// @name group name
//@{
...
//@}

//@}

4 유용한 plugin

4.1 DoxygenToolkit

VIM용 plugin. 함수 주석을 편리하게 달 수 있다.

아래는 내 vimrc에서 DoxygenToolkit용 설정

"for DoxygenToolkit.vim
let g:DoxygenToolkit_interCommentTag="^I"
let g:DoxygenToolkit_blockHeader=""
let g:DoxygenToolkit_blockFooter="^I@warning^I^M^M^I@remarks^I^M^M^I@note^I^M^M^I@sa^I^M"
let g:DoxygenToolkit_authorName="Yun-yong Choi"

실제 설정에 적용할때는 ^I는 tab을 누르면 되고 ^M은 ^V를 누르고 엔터키를 누르면 된다.

플러그인은 http://www.vim.org/scripts/script.php?script_id=987 에서 받을 수 있다.