[Development] Documentation and Modularization

Konstantin Tokarev annulen at yandex.ru
Mon Sep 24 11:36:10 CEST 2012



23.09.2012, 14:25, "Frederik Gladhorn" <gladhorn at kde.org>:
> Hi,
> since we were discussing how to maintain QDoc and how to fix issues, I poked at
> doxygen again.
> I also sent a mail to it's maintainer who responded quickly and friendly.
> I'm not sure if we want to go down this route, but it seems an option to me.
> It means a lot of work, but so does maintaining qdoc and extending it (does
> anyone feel like adding template support there?).
>
> Below are my initial findings (looking at qtcore only). Feel free to correct me
> or add your experience with doxygen.
>
> Cheers
> Frederik
>
> Big issues:
>   - QML
>   - No support for tables?
>       \table \header \row ...

Doxygen supports HTML tables.

>
> Tag Files:
>   see Linking to external documentation
>   while possible to have circular dependencies this requires re-runs of
> doxygen afaict
>     (check mail from Marc Mutz on devel mailing list, this approach favors
> "incremental" documentation builds)
>     as all solutions this means running the tool twice, there is no explicit
> switch to only generate tags/docs as far as I can see
>
> Open Questions:
>   * inheritance

What's the problem? Doxygen adds section "Inherits" for inherited classes.

>   \reimp ?
>   * snippet markers need begin and end?
>   * no support for \section1 \section2 etc in class documentation, only in
> pages (\section \subsection ...)
>   * xml output is different from dita I think, I didn't look into this and I
> don't think dita is required any more
>   * is the license a problem? I'd say no: Doxygen is GPL, but:
>     "Documents produced by doxygen are derivative works derived from the input
>      used in their production; they are not affected by this license."
>   * is speed an issue? is it slower/faster than qdoc? I don't think it matters
> that much, but we'd like to have the make docs step run when building Qt by
> default...
>
> Work needed in doxygen config:
>   * generally macro expansion needs fine-tuning
>     \macro ? there is preprocessing leading to macro expansion (optional)
>     with PREDEFINED it's prossible to replace macros with different source code
> (eg nothing)
>   \l - see custom commands - should work
>   \threadsave
>   \reentrant
>   \tt
>   \b
>   section labels \section1 seems to not work
>   \module -> \defgroup
>   \inmodule -> \ingroup
>   \since needs to expand to boiler plate text
>
> Work needed on Qt documentation:
>   * enums - inline value documentation
>     \value -> enums in header
>
> Todo:
>   * write config files
>   * integrate with build system (two runs during build?)
>   * integrate with stylesheets and adopt html templates etc
>
> Nice stuff:
> + output formats
> + searching client and server side
> + graphs, inheritance diagrams
> + lists in bb style possible (less typing)
> + seemingly better template support (needs checking)
> + automatically documents typedefs (?)
> + link to source files possible
> + inline enum documentation
> + maintainer reacted to mail within a day and was happy about potential qml
> contributions
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development

-- 
Regards,
Konstantin



More information about the Development mailing list