J'ai essayé de documenter mon projet C++ en utilisant Doxygen, avec peu de succès: Doxygen échoue à reconnaître certaines macros, et par conséquent des fonctions entières sont mal interprétées et la plupart du temps ne génèrent pas de docs . Exemple:Utilisation correcte de Doxygen
/**
* \def __MYLIB_FUNCTION_ATTRIBUTE(...)
* \brief Some brief comment
* \details Detailed doc
* \sa Some valid references
*/
#define __MYLIB_FUNCTION_ATTRIBUTE(...) __attribute__(__VA_ARGS__)
/**
* \def IN
* \brief Tag for input arguments to a function
* \details Blah...
* \sa OUT
*/
#define IN
/**
* \def OUT
* \brief Tag for output arguments to a function
* \details Blah...
* \sa IN
*/
#define OUT
class MyClass {
public:
/**
* \fn MyClass()
* \brief Constructor for MyClass
* \details Hi!
*/
__MYLIB_FUNCTION_ATTRIBUTE(__always_inline__)
MyClass() {
}
/**
* \fn const char *doNothing(const char *s IN)
* \brief A weird function
* \details Some very weird doc
* \param[in] s No good parameter
*/
const char* __SXC_FUNCTION_ATTRIBUTE(__const__) doNothing(const char *s IN) {
return s;
}
};
Documentation générée pour la classe ci-dessus est toujours manquant une description pour doNothing
et IN
est interprété en fonction! Est-ce que je fais quelque chose de mal ici?
Quelles sont les valeurs de MACRO_EXPANSION et al. (http://www.doxygen.nl/config.html#cfg_macro_expansion) dans votre fichier de configuration? –
@Eric: Je pense que vous avez compris le problème! MACRO_EXPANSION est défini sur YES, mais dois-je également spécifier des répertoires d'inclusion supplémentaires? Actuellement, tous les en-têtes utilisés sont également traités par Doxygen. Je passerai en revue les autres paramètres et je reviendrai vers vous. – themoondothshine
Voici les config params: 'ENABLE_PREPROCESSING = OUI OUI = MACRO_EXPANSION EXPAND_ONLY_PREDEF = NO = SEARCH_INCLUDES YES' – themoondothshine