Move SENF and build specific Doxygen stuff into extra, shared Doxyfile
g0dil [Thu, 3 Sep 2009 08:14:45 +0000 (08:14 +0000)]
git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@1373 270642c3-0616-0410-b53a-bc976706d245

doclib/Doxyfile.global
site_scons/SENFSCons.py
site_scons/lib/Doxyfile [new file with mode: 0644]
site_scons/lib/Doxyfile.yap
site_scons/site_tools/Doxygen.py

index 63881ec..594f6db 100644 (file)
@@ -1,22 +1,13 @@
 # For a full documented example configuration, call 'doxygen -g -'
 
-OUTPUT_DIRECTORY       = $(output_dir)
+@INCLUDE = "$(LIBDIR)/Doxyfile"
 
 DOXYFILE_ENCODING      = UTF-8
 INPUT_ENCODING         = UTF-8
 
 ALWAYS_DETAILED_SEC    = YES
-STRIP_FROM_INC_PATH    = $(TOPDIR)
 MULTILINE_CPP_IS_BRIEF = YES
 DETAILS_AT_TOP         = YES
-LAYOUT_FILE            = $(TOPDIR)/site_scons/lib/DoxygenLayout.xml
-
-ALIASES                = "fixme=\xrefitem fixme \"Fix\" \"Fixmes\"" \
-                         "idea=\xrefitem idea \"Idea\" \"Ideas\"" \
-                         "implementation=\par \"Implementation note:\"" \
-                         "doc=\xrefitem doc \"Documentation request\" \"Documentation Requests\"" \
-                         "autotoc=\htmlonly <div id=\"autotoc\"></div> \endhtmlonly" \
-                         "seechapter=<b>\htmlonly &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&rarr;&nbsp;\endhtmlonly see </b>"
 
 BUILTIN_STL_SUPPORT    = YES
 
@@ -43,65 +34,18 @@ EXCLUDE_PATTERNS       = *.test.cc \
                          "#*#"
 EXCLUDE_SYMBOLS        = boost std
 IMAGE_PATH             = .
-INPUT_FILTER           = "$(TOPDIR)/site_scons/lib/filter.pl"
 
 SOURCE_BROWSER         = YES
 ALPHABETICAL_INDEX     = YES
 COLS_IN_ALPHA_INDEX    = 3
 
-GENERATE_HTML          = $(html)
-HTML_OUTPUT            = $(html_dir)
-HTML_HEADER            = "$(TOPDIR)/doclib/doxy-header.html"
-HTML_FOOTER            = "$(TOPDIR)/doclib/doxy-footer.html"
-
 GENERATE_LATEX         = NO
 GENERATE_XML           = NO
 GENERATE_MAN           = NO
 
 MACRO_EXPANSION        = YES
 EXPAND_ONLY_PREDEF     = YES
-PREDEFINED             = DOXYGEN \
-                         "SENF_PPI_MODULE(x)=" \
-                         "SENF_PARSER()=" \
-                         "SENF_FIXED_PARSER()=" \
-                         "SENF_PARSER_INHERIT(name)=" \
-                         "SENF_PARSER_FIELD(name,type)=type name() const" \
-                         "SENF_PARSER_FIELD_RO(name,type)=type::value_type name() const" \
-                         "SENF_PARSER_BITFIELD(name, bits, type)=senf::ParseField_ ## type(bits) name() const" \
-                         "SENF_PARSER_BITFIELD_RO(name, bits, type)=senf::ParseField_ ## type(bits)::value_type name() const" \
-                         "SENF_PARSER_CUSTOM_FIELD(name, type, size, isize)=type name() const" \
-                         "SENF_PARSER_PRIVATE_FIELD(name,type)=private: type name() const; public:" \
-                         "SENF_PARSER_PRIVATE_FIELD_RO(name, type)=private: type::value_type name() const; public:" \
-                         "SENF_PARSER_PRIVATE_BITFIELD(name, bits, type)=private: senf::ParseField_ ## type(bits) name() const; public:" \
-                         "SENF_PARSER_PRIVATE_BITFIELD_RO(name, bits, type)=private: senf::ParseField_ ## type(bits)::value_type name() const; public:" \
-                         "SENF_PARSER_SKIP(x)=" \
-                         "SENF_PARSER_SKIP_BITS(x)=" \
-                         "SENF_PARSER_GOTO(x)=" \
-                         "SENF_PARSER_GOTO_OFFSET(x)=" \
-                         "SENF_PARSER_LABEL(x)=" \
-                         "SENF_PARSER_INIT()=void init()" \
-                         "SENF_PARSER_FINALIZE(name)=" \
-                         "ParseField_unsigned(b)=UIntFieldParser<?,?+b>" \
-                         "ParseField_signed(b)=IntFieldParser<?,?+b>" \
-                         "ParseField_bool(b)=FlagParser<?>" \
-                         "SENF_PARSER_ARRAY(name,elt_type,size)=senf::Parse_Array<size,elt_type> name() const" \
-                         "SENF_PARSER_LIST_B(name,elt_type,size_type)=senf::Parse_ListB<elt_type,size_type>::parser name() const" \
-                         "SENF_PARSER_LIST_N(name,elt_type,size_type)=senf::Parse_ListN<elt_type,size_type>::parser name() const" \
-                         "SENF_PARSER_VARIANT(name,chooser,types)=senf::Parse_Variant_Direct<chooser ## _t,?,types>::parser name() const" \
-                         "SENF_PARSER_PRIVATE_VARIANT(name,chooser,types)=private: senf::Parse_Variant_Direct<chooser ## _t,?,types>::parser name() const; public:" \
-                         "SENF_PARSER_VEC_N(name,elt_type,size_type)=senf::Parse_VectorN<elt_type,size_type> name() const" \
-                         "SENF_LOG_CLASS_AREA()=" \
-                         "SENF_LOG_DEFAULT_AREA(area)=" \
-                         "SENF_LOG_DEFAULT_STREAM(stream)=" \
-                         "BOOST_PP_ITERATE()=" \
-                         "BOOST_PARAMETER_KEYWORD(ns, name)=unspecified_keyword_type name;"
-EXPAND_AS_DEFINED      = prefix_ \
-                         SENF_LOG_DEF_STREAM \
-                         SENF_LOG_DEF_AREA \
-                         SENF_LOG_DEF_AREA_I
 
-TAGFILES               = $(tagfiles)
-GENERATE_TAGFILE       = $(generate_tagfile)
 EXTERNAL_GROUPS        = NO
 
 HAVE_DOT               = YES
@@ -109,7 +53,6 @@ COLLABORATION_GRAPH    = NO
 GROUP_GRAPHS           = NO
 GRAPHICAL_HIERARCHY    = NO
 DIRECTORY_GRAPH        = NO
-DOT_PATH               = "$(TOPDIR)/site_scons/lib"
 DOT_GRAPH_MAX_NODES    = 10
 MAX_DOT_GRAPH_DEPTH    = 5
 DOT_MULTI_TARGETS      = YES
@@ -117,4 +60,8 @@ DOT_CLEANUP            = NO
 
 SEARCHENGINE           = YES
 
+LAYOUT_FILE            = $(LIBDIR)/DoxygenLayout.xml
+HTML_HEADER            = $(TOPDIR)/doclib/doxy-header.html
+HTML_FOOTER            = $(TOPDIR)/doclib/doxy-footer.html
+
 @INCLUDE = "$(TOPDIR)/Doxyfile.local"
index 88fa5e5..1f082b9 100644 (file)
@@ -41,6 +41,7 @@ def Doxygen(env, doxyfile = "Doxyfile", extra_sources = []):
                               DOXYOPTS = [ '--tagfile-name', '"${MODULE}.tag"',
                                            '--tagfile' ],
                               DOXYENV  = { 'TOPDIR'          : env.Dir('#').abspath,
+                                           'LIBDIR'          : env.Dir('#/site_scons/lib').abspath,
                                            'output_dir'      : 'doc',
                                            'html_dir'        : 'html',
                                            'html'            : 'NO',
@@ -60,6 +61,7 @@ def Doxygen(env, doxyfile = "Doxyfile", extra_sources = []):
                                    '--html' ],
                       MODULE   = module,
                       DOXYENV  = { 'TOPDIR'          : env.Dir('#').abspath,
+                                   'LIBDIR'          : env.Dir('#/site_scons/lib').abspath,
                                    'tagfiles'        : '${ALL_TAGFILES}',
                                    'output_dir'      : 'doc',
                                    'html_dir'        : 'html',
diff --git a/site_scons/lib/Doxyfile b/site_scons/lib/Doxyfile
new file mode 100644 (file)
index 0000000..5cc9370
--- /dev/null
@@ -0,0 +1,56 @@
+ALIASES                = "fixme=\xrefitem fixme \"Fix\" \"Fixmes\"" \
+                         "idea=\xrefitem idea \"Idea\" \"Ideas\"" \
+                         "implementation=\par \"Implementation note:\"" \
+                         "doc=\xrefitem doc \"Documentation request\" \"Documentation Requests\"" \
+                         "autotoc=\htmlonly <div id=\"autotoc\"></div> \endhtmlonly" \
+                         "seechapter=<b>\htmlonly &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&rarr;&nbsp;\endhtmlonly see </b>"
+
+PREDEFINED             = DOXYGEN \
+                         "SENF_PPI_MODULE(x)=" \
+                         "SENF_PARSER()=" \
+                         "SENF_FIXED_PARSER()=" \
+                         "SENF_PARSER_INHERIT(name)=" \
+                         "SENF_PARSER_FIELD(name,type)=type name() const" \
+                         "SENF_PARSER_FIELD_RO(name,type)=type::value_type name() const" \
+                         "SENF_PARSER_BITFIELD(name, bits, type)=senf::ParseField_ ## type(bits) name() const" \
+                         "SENF_PARSER_BITFIELD_RO(name, bits, type)=senf::ParseField_ ## type(bits)::value_type name() const" \
+                         "SENF_PARSER_CUSTOM_FIELD(name, type, size, isize)=type name() const" \
+                         "SENF_PARSER_PRIVATE_FIELD(name,type)=private: type name() const; public:" \
+                         "SENF_PARSER_PRIVATE_FIELD_RO(name, type)=private: type::value_type name() const; public:" \
+                         "SENF_PARSER_PRIVATE_BITFIELD(name, bits, type)=private: senf::ParseField_ ## type(bits) name() const; public:" \
+                         "SENF_PARSER_PRIVATE_BITFIELD_RO(name, bits, type)=private: senf::ParseField_ ## type(bits)::value_type name() const; public:" \
+                         "SENF_PARSER_SKIP(x)=" \
+                         "SENF_PARSER_SKIP_BITS(x)=" \
+                         "SENF_PARSER_GOTO(x)=" \
+                         "SENF_PARSER_GOTO_OFFSET(x)=" \
+                         "SENF_PARSER_LABEL(x)=" \
+                         "SENF_PARSER_INIT()=void init()" \
+                         "SENF_PARSER_FINALIZE(name)=" \
+                         "ParseField_unsigned(b)=UIntFieldParser<?,?+b>" \
+                         "ParseField_signed(b)=IntFieldParser<?,?+b>" \
+                         "ParseField_bool(b)=FlagParser<?>" \
+                         "SENF_PARSER_ARRAY(name,elt_type,size)=senf::Parse_Array<size,elt_type> name() const" \
+                         "SENF_PARSER_LIST_B(name,elt_type,size_type)=senf::Parse_ListB<elt_type,size_type>::parser name() const" \
+                         "SENF_PARSER_LIST_N(name,elt_type,size_type)=senf::Parse_ListN<elt_type,size_type>::parser name() const" \
+                         "SENF_PARSER_VARIANT(name,chooser,types)=senf::Parse_Variant_Direct<chooser ## _t,?,types>::parser name() const" \
+                         "SENF_PARSER_PRIVATE_VARIANT(name,chooser,types)=private: senf::Parse_Variant_Direct<chooser ## _t,?,types>::parser name() const; public:" \
+                         "SENF_PARSER_VEC_N(name,elt_type,size_type)=senf::Parse_VectorN<elt_type,size_type> name() const" \
+                         "SENF_LOG_CLASS_AREA()=" \
+                         "SENF_LOG_DEFAULT_AREA(area)=" \
+                         "SENF_LOG_DEFAULT_STREAM(stream)=" \
+                         "BOOST_PP_ITERATE()=" \
+                         "BOOST_PARAMETER_KEYWORD(ns, name)=unspecified_keyword_type name;"
+
+EXPAND_AS_DEFINED      = prefix_ \
+                         SENF_LOG_DEF_STREAM \
+                         SENF_LOG_DEF_AREA \
+                         SENF_LOG_DEF_AREA_I
+
+OUTPUT_DIRECTORY       = $(output_dir)
+INPUT_FILTER           = $(LIBDIR)/filter.pl
+GENERATE_HTML          = $(html)
+HTML_OUTPUT            = $(html_dir)
+TAGFILES               = $(tagfiles)
+GENERATE_TAGFILE       = $(generate_tagfile)
+DOT_PATH               = $(LIBDIR)
+STRIP_FROM_INC_PATH    = $(TOPDIR)
index 22d5763..64d98b3 100644 (file)
@@ -1,12 +1,16 @@
 
+PROJECT_NAME           = "${PROJECTNAME}"
+PROJECT_NUMBER         = "(Version $(REVISION))"
+
 INPUT                  = .
 RECURSIVE              = NO
-PROJECT_NAME           = "${PROJECTNAME}"
-PROJECT_NUMBER         = "(Version ${REVISION})"
+ALPHABETICAL_INDEX     = NO
 
 ###########################################################################
 # Layout customization
 
+@INCLUDE = "$(LIBDIR)/Doxyfile"
+
 DOXYFILE_ENCODING      = UTF-8
 INPUT_ENCODING         = UTF-8
 
@@ -14,13 +18,6 @@ ALWAYS_DETAILED_SEC    = YES
 MULTILINE_CPP_IS_BRIEF = YES
 DETAILS_AT_TOP         = YES
 
-ALIASES                = "fixme=\xrefitem fixme \"Fix\" \"Fixmes\"" \
-                         "idea=\xrefitem idea \"Idea\" \"Ideas\"" \
-                         "implementation=\par \"Implementation note:\"" \
-                         "doc=\xrefitem doc \"Documentation request\" \"Documentation Requests\"" \
-                         "autotoc=\htmlonly <div id=\"autotoc\"></div> \endhtmlonly" \
-                         "seechapter=<b>\htmlonly &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&rarr;&nbsp;\endhtmlonly see </b>"
-
 BUILTIN_STL_SUPPORT    = YES
 
 SUBGROUPING            = NO
@@ -47,7 +44,6 @@ EXCLUDE_SYMBOLS        = boost std
 IMAGE_PATH             = .
 
 SOURCE_BROWSER         = YES
-ALPHABETICAL_INDEX     = YES
 COLS_IN_ALPHA_INDEX    = 3
 
 GENERATE_LATEX         = NO
@@ -56,45 +52,6 @@ GENERATE_MAN           = NO
 
 MACRO_EXPANSION        = YES
 EXPAND_ONLY_PREDEF     = YES
-PREDEFINED             = DOXYGEN \
-                         "SENF_PPI_MODULE(x)=" \
-                         "SENF_PARSER()=" \
-                         "SENF_FIXED_PARSER()=" \
-                         "SENF_PARSER_INHERIT(name)=" \
-                         "SENF_PARSER_FIELD(name,type)=type name() const" \
-                         "SENF_PARSER_FIELD_RO(name,type)=type::value_type name() const" \
-                         "SENF_PARSER_BITFIELD(name, bits, type)=senf::ParseField_ ## type(bits) name() const" \
-                         "SENF_PARSER_BITFIELD_RO(name, bits, type)=senf::ParseField_ ## type(bits)::value_type name() const" \
-                         "SENF_PARSER_CUSTOM_FIELD(name, type, size, isize)=type name() const" \
-                         "SENF_PARSER_PRIVATE_FIELD(name,type)=private: type name() const; public:" \
-                         "SENF_PARSER_PRIVATE_FIELD_RO(name, type)=private: type::value_type name() const; public:" \
-                         "SENF_PARSER_PRIVATE_BITFIELD(name, bits, type)=private: senf::ParseField_ ## type(bits) name() const; public:" \
-                         "SENF_PARSER_PRIVATE_BITFIELD_RO(name, bits, type)=private: senf::ParseField_ ## type(bits)::value_type name() const; public:" \
-                         "SENF_PARSER_SKIP(x)=" \
-                         "SENF_PARSER_SKIP_BITS(x)=" \
-                         "SENF_PARSER_GOTO(x)=" \
-                         "SENF_PARSER_GOTO_OFFSET(x)=" \
-                         "SENF_PARSER_LABEL(x)=" \
-                         "SENF_PARSER_INIT()=void init()" \
-                         "SENF_PARSER_FINALIZE(name)=" \
-                         "ParseField_unsigned(b)=UIntFieldParser<?,?+b>" \
-                         "ParseField_signed(b)=IntFieldParser<?,?+b>" \
-                         "ParseField_bool(b)=FlagParser<?>" \
-                         "SENF_PARSER_ARRAY(name,elt_type,size)=senf::Parse_Array<size,elt_type> name() const" \
-                         "SENF_PARSER_LIST_B(name,elt_type,size_type)=senf::Parse_ListB<elt_type,size_type>::parser name() const" \
-                         "SENF_PARSER_LIST_N(name,elt_type,size_type)=senf::Parse_ListN<elt_type,size_type>::parser name() const" \
-                         "SENF_PARSER_VARIANT(name,chooser,types)=senf::Parse_Variant_Direct<chooser ## _t,?,types>::parser name() const" \
-                         "SENF_PARSER_PRIVATE_VARIANT(name,chooser,types)=private: senf::Parse_Variant_Direct<chooser ## _t,?,types>::parser name() const; public:" \
-                         "SENF_PARSER_VEC_N(name,elt_type,size_type)=senf::Parse_VectorN<elt_type,size_type> name() const" \
-                         "SENF_LOG_CLASS_AREA()=" \
-                         "SENF_LOG_DEFAULT_AREA(area)=" \
-                         "SENF_LOG_DEFAULT_STREAM(stream)=" \
-                         "BOOST_PP_ITERATE()=" \
-                         "BOOST_PARAMETER_KEYWORD(ns, name)=unspecified_keyword_type name;"
-EXPAND_AS_DEFINED      = prefix_ \
-                         SENF_LOG_DEF_STREAM \
-                         SENF_LOG_DEF_AREA \
-                         SENF_LOG_DEF_AREA_I
 
 EXTERNAL_GROUPS        = NO
 
@@ -111,18 +68,6 @@ DOT_CLEANUP            = NO
 
 SEARCHENGINE           = NO
 
-###########################################################################
-# The following options are MANDATORY to integrate with the build system
-
-OUTPUT_DIRECTORY       = $(output_dir)
-STRIP_FROM_INC_PATH    = $(TOPDIR)
 LAYOUT_FILE            = $(LIBDIR)/DoxygenLayout.xml
-GENERATE_HTML          = $(html)
-HTML_OUTPUT            = $(html_dir)
 HTML_HEADER            = $(TOPDIR)/$(output_dir)/doxyheader.html
 HTML_FOOTER            = $(TOPDIR)/$(output_dir)/doxyfooter.html
-INPUT_FILTER           = $(LIBDIR)/filter.pl
-TAGFILES               = $(tagfiles)
-GENERATE_TAGFILE       = $(generate_tagfile)
-DOT_PATH               = $(LIBDIR)
-
index 44a105f..a1975c9 100644 (file)
@@ -196,7 +196,7 @@ class DoxyfileParser:
             parser.parse()
             return
 
-      raise ValueError,"@INCLUDE file not found"
+      raise ValueError,"@INCLUDE file '%s' not found" % value[0]
 
    def _INCLUDE_PATH(self, op, value):
       self._include_path.extend(value)