split doxygen setup to avoid circular dependency

close #426