2010-05-25 50 views
2

我正在使用多個庫項目,在結構設置,像這樣:如何用多個庫管理Doxygen項目?

/src目錄
/庫/ libOne
/庫/ libTwo

我要生成一個單一的Doxygen頁面涵蓋了我所有的代碼以及庫。這很簡單,只需將Doxygen指向根。但是,我希望將doxygen輸出分組,以便我可以清楚地看到每個類/文件屬於哪個庫。但是,由於這些庫不是由我編寫的,我不想修改它們來添加\ addtogroup註釋。

我不介意如果生成的文檔對於庫是不合適的(例如,如果它們不包含兼容doxy的註釋),我還是希望它們包含在內,以便我可以查看調用圖並快速瀏覽這些類,等等。

如何將每個庫代碼分組爲模塊而不更改庫的源代碼?

謝謝

回答

2

你應該把所有必要的文件放在外部文件中。我不知道如何做到這一點,但我試圖建立一個像你一樣的最小環境,它運作良好。只是爲了記錄的東西,我抓起Doxygen的網站示例代碼:

test1.h:

#define MAX(a,b) (((a)>(b))?(a):(b)) 
typedef unsigned int UINT32; 
int errno; 
int open(const char *,int); 
int close(int); 
size_t write(int,const char *, size_t); 
int read(int,char *,size_t); 

並且寫了完全無用test2.h(只是有兩個不同的文件......) :

void itdoesnothing(); 

這裏是很好的部分。我做了一個外部頭只是爲了記錄上面,把它稱爲test_doc.h(再次,只是用在Doxygen的網站爲例):

/*! \addtogroup everything The main group 
    This group contains everything. 
    @{ 
*/ 

/*! \file test.h 
    \brief A Documented file. 

    Details. 
*/ 

/*! \def MAX(a,b) 
    \brief A macro that returns the maximum of \a a and \a b. 
    Details. 
*/ 

/*! \var typedef unsigned int UINT32 
    \brief A type definition for a . 
    Details. 
*/ 

/*! \addtogroup err Error handling 
Error handling related stuff 
@{ 
*/ 

/*! \var int errno 
    \brief Contains the last error code. 
    \warning Not thread safe! 
*/ 

/*! @} */ 

/*! \addtogroup fdrelated File description related 
    File descriptor related stuff. 
    @{ 
*/ 

/*! \fn int open(const char *pathname,int flags) 
    \brief Opens a file descriptor. 

    \param pathname The name of the descriptor. 
    \param flags Opening flags. 
*/ 

/*! \fn int close(int fd) 
    \brief Closes the file descriptor \a fd. 

    \param fd The descriptor to close. 
*/ 

這成功地證明這兩個文件的Doxygen。這樣,您就可以組文件,命名空間等也按照手冊中的規定:

一組的成員可以是文件,命名空間,類,函數,變量,枚舉類型定義,並界定,而且其他組。

因此,請嘗試閱讀http://www.doxygen.nl/grouping.html,看看我上面提到的事情有什麼可能做。祝你好運!

+0

非常感謝您的回答。我會盡快嘗試,如果有效,請接受您的答案。 – bramp 2010-05-26 19:07:40

+0

謝謝,這對我來說很好! – bramp 2010-06-11 14:30:45

+6

你是說你必須明確地添加每個類/函數/等到一個組?現有的代碼庫聽起來很可怕......還是有捷徑?就像告訴它所有文件(或理想的目錄)在同一個組中一樣? – 2010-06-17 13:36:02