doxygen generated pages are static html.
Doxygen can also spit out XML. In that way you're not getting a page of static HTML with extra formatting and meta cruft. Extracting content from the XML is way easier than dealing with the Doxy HTML (not least of which because Doxygen makes no guarantees about the structure and class identifiers in th HTML, so updates could easily break extraction code).
Actually generating HTML that Drupal can inline into a node can (probably) subsequently be performed on the XML by using an XSLT. This gives you a process something like:
Run doxygen: (configured to generate HTML and XML).
Push the HTML to the server as a zip (Jules is already doing this so I'm assuming there's a script already written).
Push the XML to the server. A Drupal module can present a web-service for receiving this. Or a cron-job can simply sniff an inbox dir periodically.
The Drupal module marks all documentation nodes as stale, then it parses the XML. As it goes, it:
- tests to see if a node matching the current class/namespace exists, and if so updates it and marks it not stale, otherwise, a new node is created. In either case, the node body is an XSLT of the class XML.
- updates a keyword lookup index to match detected keywords to the given node/anchor pair (see below).
Finally, any still stale nodes are deleted.
At that point, Drupal basically does everything else for free. The searching will be inefficient by default, but will be site wide. The module can also augment the search functionality directly if needed, using is own keyword table, to update Drupal's search system (https://api.drupal.org/api/drupal/modules%21search%21search.module/group/search/7)
Because each class is presented as a normal node, you get essentially this forum system on each and every entry in the documentation.