Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Doxygen Woes
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
CiA10386
n00b
n00b


Joined: 06 Aug 2006
Posts: 8

PostPosted: Tue Sep 05, 2006 6:31 pm    Post subject: Doxygen Woes Reply with quote

I'm currently on an AMD64 platform and have recently done the 2006.1 profile upgrade, switching my compiler over to 4.1.1. In keeping with this, just to be safe, I recompiled every single package in world and system, then ran revdep just to make sure. So, everything's working fine...or so I think. I go back to working on a programming project and when I go to run doxygen on the sources, every single class member generates a warning, in the definition files for my C++ sources, that documented members are going undefined; it does this whether or not the member in question is actually documented or not. So, as a precaution, I unmerged doxygen, remerged it...doesn't work. I installed 1.4.7, still had the same problem, then switched back to the stable version. I figured that it may have been one of KDevelop's automated Doxyfile settings gone wrong, so I made a simple one (using doxywizard) for a very simple set of files.

Doxyfile:
Code:

#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME           = Test
PROJECT_NUMBER         = 0.1
OUTPUT_DIRECTORY       =
CREATE_SUBDIRS         = NO
OUTPUT_LANGUAGE        = English
USE_WINDOWS_ENCODING   = NO
BRIEF_MEMBER_DESC      = YES
REPEAT_BRIEF           = YES
ABBREVIATE_BRIEF       = "The $name class" \
                         "The $name widget" \
                         "The $name file" \
                         is \
                         provides \
                         specifies \
                         contains \
                         represents \
                         a \
                         an \
                         the
ALWAYS_DETAILED_SEC    = NO
INLINE_INHERITED_MEMB  = NO
FULL_PATH_NAMES        = YES
STRIP_FROM_PATH        = /home/craig/dev/testdoxy/
STRIP_FROM_INC_PATH    =
SHORT_NAMES            = NO
JAVADOC_AUTOBRIEF      = NO
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP         = NO
INHERIT_DOCS           = YES
SEPARATE_MEMBER_PAGES  = NO
TAB_SIZE               = 8
ALIASES                =
OPTIMIZE_OUTPUT_FOR_C  = NO
OPTIMIZE_OUTPUT_JAVA   = NO
BUILTIN_STL_SUPPORT    = NO
DISTRIBUTE_GROUP_DOC   = NO
SUBGROUPING            = YES
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL            = NO
EXTRACT_PRIVATE        = NO
EXTRACT_STATIC         = NO
EXTRACT_LOCAL_CLASSES  = YES
EXTRACT_LOCAL_METHODS  = NO
HIDE_UNDOC_MEMBERS     = NO
HIDE_UNDOC_CLASSES     = NO
HIDE_FRIEND_COMPOUNDS  = NO
HIDE_IN_BODY_DOCS      = NO
INTERNAL_DOCS          = NO
CASE_SENSE_NAMES       = YES
HIDE_SCOPE_NAMES       = NO
SHOW_INCLUDE_FILES     = YES
INLINE_INFO            = YES
SORT_MEMBER_DOCS       = YES
SORT_BRIEF_DOCS        = NO
SORT_BY_SCOPE_NAME     = NO
GENERATE_TODOLIST      = YES
GENERATE_TESTLIST      = YES
GENERATE_BUGLIST       = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS       =
MAX_INITIALIZER_LINES  = 30
SHOW_USED_FILES        = YES
SHOW_DIRECTORIES       = NO
FILE_VERSION_FILTER    =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET                  = NO
WARNINGS               = YES
WARN_IF_UNDOCUMENTED   = YES
WARN_IF_DOC_ERROR      = YES
WARN_NO_PARAMDOC       = NO
WARN_FORMAT            = "$file:$line: $text"
WARN_LOGFILE           =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT                  = /home/craig/dev/testdoxy
FILE_PATTERNS          = *.c \
                         *.cc \
                         *.cxx \
                         *.cpp \
                         *.c++ \
                         *.d \
                         *.java \
                         *.ii \
                         *.ixx \
                         *.ipp \
                         *.i++ \
                         *.inl \
                         *.h \
                         *.hh \
                         *.hxx \
                         *.hpp \
                         *.h++ \
                         *.idl \
                         *.odl \
                         *.cs \
                         *.php \
                         *.php3 \
                         *.inc \
                         *.m \
                         *.mm \
                         *.dox \
                         *.py \
                         *.C \
                         *.CC \
                         *.C++ \
                         *.II \
                         *.I++ \
                         *.H \
                         *.HH \
                         *.H++ \
                         *.CS \
                         *.PHP \
                         *.PHP3 \
                         *.M \
                         *.MM \
                         *.PY
RECURSIVE              = YES
EXCLUDE                =
EXCLUDE_SYMLINKS       = NO
EXCLUDE_PATTERNS       =
EXAMPLE_PATH           =
EXAMPLE_PATTERNS       = *
EXAMPLE_RECURSIVE      = NO
IMAGE_PATH             =
INPUT_FILTER           =
FILTER_PATTERNS        =
FILTER_SOURCE_FILES    = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER         = NO
INLINE_SOURCES         = NO
STRIP_CODE_COMMENTS    = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION    = YES
REFERENCES_LINK_SOURCE = YES
USE_HTAGS              = NO
VERBATIM_HEADERS       = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX     = NO
COLS_IN_ALPHA_INDEX    = 5
IGNORE_PREFIX          =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML          = YES
HTML_OUTPUT            = html
HTML_FILE_EXTENSION    = .html
HTML_HEADER            =
HTML_FOOTER            =
HTML_STYLESHEET        =
HTML_ALIGN_MEMBERS     = YES
GENERATE_HTMLHELP      = NO
CHM_FILE               =
HHC_LOCATION           =
GENERATE_CHI           = NO
BINARY_TOC             = NO
TOC_EXPAND             = NO
DISABLE_INDEX          = NO
ENUM_VALUES_PER_LINE   = 4
GENERATE_TREEVIEW      = NO
TREEVIEW_WIDTH         = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX         = YES
LATEX_OUTPUT           = latex
LATEX_CMD_NAME         = latex
MAKEINDEX_CMD_NAME     = makeindex
COMPACT_LATEX          = NO
PAPER_TYPE             = a4wide
EXTRA_PACKAGES         =
LATEX_HEADER           =
PDF_HYPERLINKS         = YES
USE_PDFLATEX           = YES
LATEX_BATCHMODE        = NO
LATEX_HIDE_INDICES     = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF           = NO
RTF_OUTPUT             = rtf
COMPACT_RTF            = NO
RTF_HYPERLINKS         = NO
RTF_STYLESHEET_FILE    =
RTF_EXTENSIONS_FILE    =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN           = NO
MAN_OUTPUT             = man
MAN_EXTENSION          = .3
MAN_LINKS              = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML           = YES
XML_OUTPUT             = xml
XML_SCHEMA             =
XML_DTD                =
XML_PROGRAMLISTING     = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF   = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD       = NO
PERLMOD_LATEX          = NO
PERLMOD_PRETTY         = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor   
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = NO
EXPAND_ONLY_PREDEF     = NO
SEARCH_INCLUDES        = YES
INCLUDE_PATH           =
INCLUDE_FILE_PATTERNS  =
PREDEFINED             =
EXPAND_AS_DEFINED      =
SKIP_FUNCTION_MACROS   = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references   
#---------------------------------------------------------------------------
TAGFILES               =
GENERATE_TAGFILE       =
ALLEXTERNALS           = NO
EXTERNAL_GROUPS        = YES
PERL_PATH              = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool   
#---------------------------------------------------------------------------
CLASS_DIAGRAMS         = YES
HIDE_UNDOC_RELATIONS   = YES
HAVE_DOT               = NO
CLASS_GRAPH            = YES
COLLABORATION_GRAPH    = YES
GROUP_GRAPHS           = YES
UML_LOOK               = NO
TEMPLATE_RELATIONS     = NO
INCLUDE_GRAPH          = YES
INCLUDED_BY_GRAPH      = YES
CALL_GRAPH             = NO
CALLER_GRAPH           = NO
GRAPHICAL_HIERARCHY    = YES
DIRECTORY_GRAPH        = YES
DOT_IMAGE_FORMAT       = png
DOT_PATH               =
DOTFILE_DIRS           =
MAX_DOT_GRAPH_WIDTH    = 1024
MAX_DOT_GRAPH_HEIGHT   = 1024
MAX_DOT_GRAPH_DEPTH    = 1000
DOT_TRANSPARENT        = NO
DOT_MULTI_TARGETS      = NO
GENERATE_LEGEND        = YES
DOT_CLEANUP            = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine   
#---------------------------------------------------------------------------
SEARCHENGINE           = NO


Run on the following sources:
test.h
Code:

#ifndef _TEST_H_
#define _TEST_H_

class test
{
public:
    test();
    ~test();

    /**
        @brief Does Nothing!

        Surprise: Does Nothing!!
    */
    void DoesNothing();
};

#endif //_TEST_H_


test.cc
Code:

#include "test.h"

test::test()
{
}

test::~test()
{
}

void test::DoesNothing()
{
}


And the log:
Code:

Searching for include files...
Searching for example files...
Searching for images...
Searching for dot files...
Searching for files to exclude
Searching for files to process...
Reading and parsing tag files
Preprocessing /home/craig/dev/testdoxy/test.cc...
Parsing file /home/craig/dev/testdoxy/test.cc...
Preprocessing /home/craig/dev/testdoxy/test.h...
Parsing file /home/craig/dev/testdoxy/test.h...
Building group list...
Building directory list...
Building namespace list...
Building file list...
Searching for included using directives...
Building class list...
Associating documentation with classes...
Computing nesting relations for classes...
Searching for members imported via using declarations...
Building example list...
Searching for documented variables...
Building member list...
Searching for friends...
Searching for documented defines...
Computing template instances...
Flushing cached template relations that have become invalid...
Creating members for template instances...
Computing class relations...
Searching for enumerations...
Searching for member function documentation...
/home/craig/dev/testdoxy/test.cc:4: Warning: documented function `test::test' was not defined.
/home/craig/dev/testdoxy/test.cc:8: Warning: documented function `test::~test' was not defined.
/home/craig/dev/testdoxy/test.cc:12: Warning: documented function `void test::DoesNothing' was not defined.
Building page list...
Search for main page...
Computing page relations...
Determining the scope of groups...
Sorting lists...
Freeing entry tree
Determining which enums are documented
Computing member relations...
Building full member lists recursively...
Adding members to member groups.
Computing member references...
Inheriting documentation...
Generating disk names...
Adding source references...
Adding todo/test/bug list items...
Generating style sheet...
Counting data structures...
Resolving user defined references...
Combining using relations...
Finding anchors and sections in the documentation...
Generating index page...
Generating example documentation...
Generating file sources...
Generating code for file test.h...
Generating file documentation...
Generating page documentation...
Generating group documentation...
Generating group index...
Generating class documentation...
Generating annotated compound index...
Generating hierarchical class index...
Generating member index...
Generating namespace index...
Generating namespace member index...
Generating graph info page...
Generating file index...
Generating example index...
Generating file member index...
Generating page index...
Generating XML output...
Generating XML output for file test.cc
Generating XML output for file test.h
*** Doxygen has finished


Before I switched, it had all worked fine.
Back to top
View user's profile Send private message
8an
n00b
n00b


Joined: 14 May 2005
Posts: 24

PostPosted: Tue Sep 05, 2006 6:48 pm    Post subject: Reply with quote

I found out it's a problem with preprocessor (ENABLE_PREPROCESSING). When you use the traditional safeguards against multiple inclusion:
Code:

#ifndef _SOMECLASS_H_
#define _SOMECLASS_H_

...

#endif //_SOMECLASS_H_

it ignores the header (as if _SOMECLASS_H_ was defined). I'm still trying to find a solution too.
Back to top
View user's profile Send private message
CiA10386
n00b
n00b


Joined: 06 Aug 2006
Posts: 8

PostPosted: Tue Sep 05, 2006 7:25 pm    Post subject: Reply with quote

Ah, thanks for the info. Seems to work fine when I just disable the preprocessor and since I don't have anything really important going on in macros or anything, I'll just leave it off, but that said, I think I'll look up this issue at their site and make sure their dev team is appraised of this situation.
Back to top
View user's profile Send private message
8an
n00b
n00b


Joined: 14 May 2005
Posts: 24

PostPosted: Tue Sep 05, 2006 7:40 pm    Post subject: Reply with quote

I searched Doxygen mailing list, it seems it's really a problem with GCC 4.1:
http://sourceforge.net/mailarchive/message.php?msg_id=34474163
Back to top
View user's profile Send private message
8an
n00b
n00b


Joined: 14 May 2005
Posts: 24

PostPosted: Tue Sep 05, 2006 9:29 pm    Post subject: Solution! Reply with quote

It is really a GCC bug, when I recompiled Doxygen with -O2 instead of -O3 it works fine.
Back to top
View user's profile Send private message
CiA10386
n00b
n00b


Joined: 06 Aug 2006
Posts: 8

PostPosted: Mon Sep 11, 2006 4:14 am    Post subject: Re: Solution! Reply with quote

8an wrote:
It is really a GCC bug, when I recompiled Doxygen with -O2 instead of -O3 it works fine.

Thanks for the update, I'll try that tomorrow, must be some truly bizarre assembly-folding going on there, -O3 is pretty safe, for the most part.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum