Doxygen - Расширять макросы, но игнорировать #if? - PullRequest
1 голос
/ 20 марта 2011

Можно ли заставить Doxygen расширять макросы, но игнорировать другие директивы препроцессора?

Примите во внимание следующее:

#if defined(linux)
  #define OS_LINUX
  int function() { /* ... */ }
  // Other functions defined for Linux
#elif defined(__WIN32__)
  #define OS_WINDOWS
  int function() { /* ... */ }
  // Other functions defined for Windows
#else
  #error "OS unsupported."
#endif

В этом случае мне нужны функции для обеих Windowsи Linux, чтобы показать, но я также хочу, чтобы макросы OS_LINUX и OS_WINDOWS также отображались в документации.Есть ли способ документировать оба макроса, игнорируя #if s?

1 Ответ

2 голосов
/ 20 марта 2011

Нет, вы не можете этого сделать, вам придется создавать документацию для каждой конфигурации отдельно. Однако если в Windows и Linux определены одинаковые интерфейсы, в любом случае документация будет одинаковой для обеих функций?

По умолчанию, если Doxygen находит документацию для объявления в заголовке и документацию для соответствующих определений в исходных файлах, будет использоваться документация в заголовке. В этом случае вы можете использовать это в своих интересах, только размещая разметку Doxygen в заголовочных файлах. Обычно интерфейсы будут идентичными кроссплатформенными, и у вас будет один заголовок, но несколько реализаций для каждой платформы, либо в отдельных источниках, либо с использованием условной компиляции.

...