Commit 72ef7a37 authored by Edward Moyse's avatar Edward Moyse Committed by Graeme Stewart
Browse files

'Attempting to get global search working again' (AtlasDoxygen-00-04-05)

parent 2592b530
This diff is collapsed.
<doxygenlayout version="1.0">
<!-- Navigation index tabs for HTML output -->
<navindex>
<tab type="mainpage" visible="yes" title=""/>
<tab type="pages" visible="yes" title="" intro=""/>
<tab type="modules" visible="yes" title="" intro=""/>
<tab type="namespaces" visible="yes" title="">
<tab type="namespacelist" visible="yes" title="" intro=""/>
<tab type="namespacemembers" visible="yes" title="" intro=""/>
</tab>
<tab type="classes" visible="yes" title="">
<tab type="classlist" visible="yes" title="" intro=""/>
<tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="hierarchy" visible="yes" title="" intro=""/>
<tab type="classmembers" visible="yes" title="" intro=""/>
</tab>
<tab type="files" visible="yes" title="">
<tab type="filelist" visible="yes" title="" intro=""/>
<tab type="globals" visible="yes" title="" intro=""/>
</tab>
<!--SVNLINK-->
<tab type="examples" visible="yes" title="" intro=""/>
</navindex>
<!-- Layout definition for a class page -->
<class>
<briefdescription visible="yes"/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<inheritancegraph visible="$CLASS_GRAPH"/>
<collaborationgraph visible="$COLLABORATION_GRAPH"/>
<memberdecl>
<nestedclasses visible="yes" title=""/>
<publictypes title=""/>
<publicslots title=""/>
<signals title=""/>
<publicmethods title=""/>
<publicstaticmethods title=""/>
<publicattributes title=""/>
<publicstaticattributes title=""/>
<protectedtypes title=""/>
<protectedslots title=""/>
<protectedmethods title=""/>
<protectedstaticmethods title=""/>
<protectedattributes title=""/>
<protectedstaticattributes title=""/>
<packagetypes title=""/>
<packagemethods title=""/>
<packagestaticmethods title=""/>
<packageattributes title=""/>
<packagestaticattributes title=""/>
<properties title=""/>
<events title=""/>
<privatetypes title=""/>
<privateslots title=""/>
<privatemethods title=""/>
<privatestaticmethods title=""/>
<privateattributes title=""/>
<privatestaticattributes title=""/>
<friends title=""/>
<related title="" subtitle=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
<constructors title=""/>
<functions title=""/>
<related title=""/>
<variables title=""/>
<properties title=""/>
<events title=""/>
</memberdef>
<allmemberslink visible="yes"/>
<usedfiles visible="$SHOW_USED_FILES"/>
<authorsection visible="yes"/>
</class>
<!-- Layout definition for a namespace page -->
<namespace>
<briefdescription visible="yes"/>
<memberdecl>
<nestednamespaces visible="yes" title=""/>
<classes visible="yes" title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection visible="yes"/>
</namespace>
<!-- Layout definition for a file page -->
<file>
<briefdescription visible="yes"/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<includegraph visible="$INCLUDE_GRAPH"/>
<includedbygraph visible="$INCLUDED_BY_GRAPH"/>
<sourcelink visible="yes"/>
<memberdecl>
<classes visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection/>
</file>
<!-- Layout definition for a group page -->
<group>
<briefdescription visible="yes"/>
<groupgraph visible="$GROUP_GRAPHS"/>
<memberdecl>
<nestedgroups visible="yes" title=""/>
<dirs visible="yes" title=""/>
<files visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<classes visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<pagedocs/>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
</memberdef>
<authorsection visible="yes"/>
</group>
<!-- Layout definition for a directory page -->
<directory>
<briefdescription visible="yes"/>
<directorygraph visible="yes"/>
<memberdecl>
<dirs visible="yes"/>
<files visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
</directory>
</doxygenlayout>
#Packages for which Doxygen will produce XML output
AnalysisTriggerEvent
CaloEvent
EventInfo
GeneratorObjects
HepMC
JetEvent
JetTagEvent
McParticleEvent
NavFourMom
MissingETEvent
Particle
TileEvent
TrackRecord
TrigEFMissingET
TrigInDetEvent
TrigSteeringEvent
TrkTrack
TrkEventPrimitives
TrkMeasurementBase
TrkParameters
TrkParametersBase
TrkTruthData
VxVertex
egammaEvent
muonEvent
tauEvent
LArRecEvent
TrigParticle
TrigMuonEvent
TrigCaloEvent
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
#------------------------------------------------------------
#
# Script to generate HTML representation of the doxygen-like comments written in
# a CMT requirements file
#
# All documentation comments considered by this script must be prefixed by '##'
#
# Special actions are triggered by special keywords:
#
# o a keyword must be the first word of a documentation comment.
# o all documentation lines related with a given keyword must appear in
# a single comment block (ie all lines in this block are prefixed with '##'
# o a keyword always start with a '@' sign
#
#--------------------------------------------
# KEYWORDS
#--------------------------------------------
# @pattern <name>
# doc line
# doc line
# doc line
# @arg <name> <description>
#
# Describe a CMT pattern and its arguments
#
#--------------------------------------------
# USAGE
#--------------------------------------------
# o Since this script reads the requirements file, it must be activated while
# being in the cmt directory of the package
# o The HTML format is generated to standard output
#
# Typical usage:
#
# > cd ..../cmt
# > python /afs/cern.ch/atlas/scripts/cmtdoc.py >../doc/cmtdoc.html
# > vi ../doc/mainpage.h
# @htmlinclude cmtdoc.html
# > gmake doxygen
#
#------------------------------------------------------------
import sys
import string
import re
lines = []
in_pattern = False
in_define_pattern = False
docs = dict ()
defs = dict ()
arg_lists = dict ()
pattern_name = ''
comment_prefix = '##'
comment_prefix_length = len (comment_prefix)
def get_doc (lines):
doc = []
for line in lines:
doc.append (string.rstrip (string.lstrip (line, '#')))
return (doc)
# end show_pattern
def html_begin_table ():
print '<table width="100%" border="0" cellspacing="1" bgcolor="#000000" cellpadding="2">'
print ''
print '<tr valign="top" bgcolor="#eeeebb">'
print ' <td><center><i>name</i></center></td>'
print ' <td><center><i>description</i></center></td>'
print ' <td><center><i>args</i></center></td>'
print '</tr>'
print ''
def html_pattern_row (name, docs, arg_lists):
print '<tr valign="top" bgcolor="#ffffff">'
print ' <td><tt><a href="#pattern ' + name + '">' + name + '</a></tt></td>'
print ' <td>'
if docs.has_key (name):
for line in docs[name]:
line = re.sub ('<', '&lt;', line)
line = re.sub ('>', '&gt;', line)
print line
else:
print '&nbsp;'
print '</td>'
print ' <td>'
if arg_lists.has_key (name):
print '<table>'
arg_list = arg_lists[name]
for arg in arg_list:
line = arg_list[arg]
line = re.sub ('<', '&lt;', line)
line = re.sub ('>', '&gt;', line)
print '<tr valign="top"><td width="60"><tt>' + arg + '</tt></td><td>' + line + '</td></tr>'
print '</table>'
else:
print '&nbsp;'
print "</tr>"
def html_end_table ():
print '</table>';
def html_pattern_def (name, defs):
print '<h2><a name="pattern ' + name + '"></a><tt>' + name + '</tt></h2>'
print ''
if defs.has_key (name):
print '<pre><FONT color="green">'
lines = defs[name]
for line in lines:
line = re.sub ('<', '&lt;', line)
line = re.sub ('>', '&gt;', line)
print line
print '</FONT></pre>'
print ''
#
# Main
#
f = open ('requirements')
for line in f.readlines ():
w = string.split (line)
if len(w) == 0:
continue
if line[0:comment_prefix_length] == comment_prefix:
#
# Doxygen comments may be inserted into CMT comment lines
#
# First word may be a parameter
#
key = ' '
if len(w) > 1:
key = w[1]
if key[0:1] == '@':
#
# Check the keyword
#
keyword = w[1]
if keyword == '@pattern':
if in_pattern:
# Any other keyword finishes that section
docs[pattern_name] = get_doc (lines)
in_pattern = False
lines = []
# Syntax : @pattern <name>
in_pattern = True
pattern_name = w[2]
continue
if keyword == '@arg':
if in_pattern:
# Syntax : @arg <name> <description>
if not arg_lists.has_key (pattern_name):
arg_lists[pattern_name] = dict ()
arg = w[2]
arg_line = string.join (w[3:])
arg_lists[pattern_name][arg] = arg_line
continue
if in_pattern:
# Any other keyword finishes that section
docs[pattern_name] = get_doc (lines)
in_pattern = False
lines = []
if in_pattern:
lines.append (line)
continue
#
# This is a normal CMT statement
#
if in_pattern:
#
# Previous line was inside a doxygen comment block, we must finish it
#
docs[pattern_name] = get_doc (lines)
in_pattern = False
lines = []
#
# Running definition
#
if in_define_pattern:
line = string.rstrip (line)
lines.append (line)
if line[-1] == '\\':
in_define_pattern = True
else:
in_define_pattern = False
defs[pattern_name] = lines;
lines = []
continue
#
# Check the CMT keyword
#
if w[0] == 'pattern':
line = string.rstrip (line)
lines.append (line)
name = w[1]
if name == '-global':
name = w[2]
if line[-1] == '\\':
pattern_name = name
in_define_pattern = True
else:
in_define_pattern = False
defs[name] = lines;
lines = []
continue
#------------------------------------------------------------
# The parsing is now finished
# Now generate HTML
#
#
# Generate the pattern table
#
html_begin_table ()
for key in defs:
html_pattern_row (key, docs, arg_lists)
html_end_table ()
#
# Generate the pattern definition list
#
for key in defs:
html_pattern_def (key, defs)
This diff is collapsed.
package AtlasDoxygen
#------------------------------------------------------
# All settings defined by this package should be selectively valued
# only when the Doxygen tag is active
#
# This tag is activated only when gmake doxygen is run. And this is actually
# triggered by the special target_xxx tag associated with the constituent.
# The tag associated with the constistuent is named target_doxygen<package> just
# because the constituent has this name.
# This specific tag is therefore associated with the generic Doxygen tag so as
# to have a generic format in this requirements
#
# Also the script Doxygen.sh actually used to drive doxygen makes use of the generic tag
# to perform additional queries.
#
#------------------------------------------------------
use LCG_Settings *
use LCG_Configuration *
path_remove DOTFONTPATH "" Linux&Doxygen "AtlasDoxygen"
path_prepend DOTFONTPATH "" Linux&Doxygen "$(AtlasDoxygen_root)/fonts/ttf"
macro AtlasDoxygen_native_version "" Doxygen "1.8.2"
path_remove PATH "" Doxygen "/doxygen/"
path_prepend PATH "" Doxygen "$(LCG_external)/doxygen/$(AtlasDoxygen_native_version)/$(LCG_system)/bin"
macro graphviz_native_version "" Doxygen "2.28.0"
path_remove PATH "" Doxygen "/graphviz/"
path_prepend PATH "" Doxygen "$(LCG_external)/graphviz/$(graphviz_native_version)/$(LCG_system)/bin"
include_path none
#
# The DOXYGEN_HTML_MAPPING macro receives a space-separated list of address mappings each of the form:
# <file-base>@<URL-base>
#
# At generation time, all absolute paths used in outputs will be filtered and converted to URLs
# (Relative paths don't need to be translated)
# This mechanism is generally useful when TAG-based mechanisms are active.
#
macro_append DOXYGEN_HTML_MAPPING "" \
Doxygen&local "/build/atlas/software/builds/@http://cern.ch/atlas-computing/links/buildDirectory" \
Doxygen&nightly "/build/atnight/localbuilds/nightlies/projects/@http://cern.ch/atlas-computing/links/buildDirectory/nightlies/dev" \
Doxygen&nightlyBUG "/build/atnight/localbuilds/nightlies/projects/@http://cern.ch/atlas-computing/links/buildDirectory/nightlies/bugfix" \
Doxygen&nightlyAFS "/afs/cern.ch/atlas/software/builds/nightlies/dev/@http://cern.ch/atlas-computing/links/buildDirectory/nightlies/dev" \
Doxygen "/afs/cern.ch/atlas/software/builds/@http://cern.ch/atlas-computing/links/buildDirectory"
#
# The DOXYGEN_STRIP_FROM_PATH macro receives the partial pathname to strip from the file paths shown in
# each package's files.html.
macro_append DOXYGEN_STRIP_FROM_PATH "" \
Doxygen&local "/afs/cern.ch/atlas/software/builds/" \
Doxygen&nightly "/afs/cern.ch/atlas/software/builds/nightlies/dev/"
#
# The DOXYGEN_COMMON_OUTPUT_DIRECTORY macro describes a common output directory. If it's not defined,
# Then the common convention is used:
#
# with_installarea:
# <cmtpath>/InstallArea/doc/<package>/html
# without_installarea:
# <package_root>/doc/html
# DOXYGEN_OUTPUT should be set in the shell if you want another location
macro DOXYGEN_COMMON_OUTPUT_DIRECTORY "" Doxygen ${DOXYGEN_OUTPUT}
#
# The following macros are directly expanded into the Doxyfile
#
macro DOXYGEN_INPUT "" Doxygen "../src ../Root ../$(package) ../doc ../share ../python ../cmt/fragments"
macro DOXYGEN_FILE_PATTERNS "" Doxygen "*.cxx *.h *.py *.mk *.icc"
macro DOXYGEN_EXCLUDE "" Doxygen ""
macro DOXYGEN_EXCLUDE_PATTERNS "" Doxygen ""
macro DOXYGEN_EXAMPLE_PATH "" Doxygen "../doc ../cmt ../share"
macro DOXYGEN_EXAMPLE_PATTERNS "" Doxygen "*.cxx *.html requirements *.py"
macro DOXYGEN_SORT_MEMBER_DOCS "" Doxygen "NO"
macro DOXYGEN_INLINE_INHERITED_MEMB "" Doxygen "YES"
macro DOXYGEN_IMAGE_PATH ""
macro DOXYGEN_UML_LOOK "" Doxygen "YES"
macro DOXYGEN_QT_AUTOBRIEF "" Doxygen "YES"
macro DOXYGEN_JAVADOC_AUTOBRIEF "" Doxygen "YES"
# Now you can use cmt doxygen -tag=<tag1,tag2,...>
action doxygen "python ${AtlasDoxygen_root}/cmt/doxygen.py $(cmt_args)"
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
## -*- python -*-
## waf imports
import waflib.Logs as msg
PACKAGE = {
"name": "Tools/AtlasDoxygen",
"authors": ["ATLAS Collaboration"],
}
### ---------------------------------------------------------------------------
def pkg_deps(ctx):
## public dependencies
ctx.use_pkg("LCG_Settings", version="*", public=True)
ctx.use_pkg("LCG_Configuration", version="*", public=True)
return # pkg_deps
### ---------------------------------------------------------------------------
def options(ctx):
return # options
### ---------------------------------------------------------------------------
def configure(ctx):
ctx.hwaf_path_remove("DOTFONTPATH", (
{"default": ""},
{("Linux", "Doxygen"): "AtlasDoxygen"},
))
## FIXME: implement a real waf-feature to do doxygen documentation
## FIXME: install fonts/ttf under INSTALL_AREA and use that instead of AtlasDoxygen_root
ctx.hwaf_path_prepend("DOTFONTPATH", (
{"default": ""},
{("Linux", "Doxygen"): "${AtlasDoxygen_root}/fonts/ttf"},
))
ctx.hwaf_declare_macro("AtlasDoxygen_native_version", (
{"default": ""},
{"Doxygen": "1.5.9"},
))
ctx.hwaf_path_remove("PATH", (
{"default": ""},
{"Doxygen": "/doxygen/"},