> The DoxygenBuilder is probably nicer. Just be aware that the Makefile does
> more
> than just running doxygen, it sets up a bunch of envvars to configure the
> docs,
> and it runs some scripts to create the pseudo-classes to help doxygen
> understand
> our class-structure, so just using the Builder won't be enough.
i converted all these makefiles/scripts into python (see attached
SConscript, it is far from finished)
unfortunately, i'm stuck with this error:
scons: *** Multiple ways to build the same target were specified for:
Code/user/html
where do i start debugging this?
a related problem: the bundled ./scons --debug=xxx does not print any
debug information, however the default scons on my machine does?
cheers,
simon
# Source
import os
import SCons.Node.FS
from os.path import basename, join
from SCons.Util import splitext
Import('*')
if _po.getOption('userdocs'):
# set params for user docs
DOC_LEVEL = '1'
DOC_LEVEL_NAME = 'user'
env['DOC_LEVEL_PREDEF'] = ''
env['DOC_LEVEL_ENABLED'] = ''
env['OSG_USE_DOC_LEVEL'] = ''
# get build env to select correct doxygen configuration file
BUILD_ENV = 'x86_64-unknown-linux-gnu' # TODO: create the correct filename
# setup doxygen environment variables
DOCBASEDIR = '.'
DOCCODEDIR = 'Code'
env['DOCDIR'] = os.path.join(DOCBASEDIR, DOCCODEDIR, DOC_LEVEL_NAME)
env['DOC_PROJECT_NAME'] = 'OpenSG'
versionfile = open('../VERSION', 'r')
env['DOC_PROJECT_NUMBER'] = versionfile.readline().strip();
versionfile.close()
DOCS_BASE = [ '../Source/Base/Base',
'../Source/Base/Field',
'../Source/Base/Functors',
'../Source/Base/Network/Base',
'../Source/Base/Network/Socket',
'../Source/Base/StringConversion' ]
DOCS_SYS = [ '../Source/System/Action',
'../Source/System/Action/DrawAction',
'../Source/System/Action/IntersectAction',
'../Source/System/Action/RenderAction',
'../Source/System/Cluster/Base',
'../Source/System/Cluster/Server',
'../Source/System/Cluster/Window',
'../Source/System/Cluster/Window/Base',
'../Source/System/Cluster/Window/MultiDisplay',
'../Source/System/Cluster/Window/SortFirst',
'../Source/System/FieldContainer',
'../Source/System/FieldContainer/Impl',
'../Source/System/FileIO',
'../Source/System/FileIO/Base',
'../Source/System/FileIO/BIN',
'../Source/System/FileIO/OBJ',
'../Source/System/FileIO/OFF',
'../Source/System/FileIO/OSG',
'../Source/System/FileIO/RAW',
'../Source/System/FileIO/WRL',
'../Source/System/FileIO/ScanParseSkel',
'../Source/System/GraphOp',
'../Source/System/Image',
'../Source/System/Material',
'../Source/System/NodeCores/Drawables/Base',
'../Source/System/NodeCores/Drawables/Geometry',
'../Source/System/NodeCores/Drawables/Misc',
'../Source/System/NodeCores/Drawables/Particles',
'../Source/System/NodeCores/Drawables/VolRen',
'../Source/System/NodeCores/Drawables/Nurbs',
'../Source/System/NodeCores/Groups/Base',
'../Source/System/NodeCores/Groups/Light',
'../Source/System/NodeCores/Groups/Misc',
'../Source/System/RenderingBackend',
'../Source/System/State',
'../Source/System/Statistics',
'../Source/System/Text',
'../Source/System/Window' ]
DOCS_EXP = [ '../Source/Experimental/NewAction',
'../Source/Experimental/SHL' ]
DOCS_X = ['../Source/WindowSystem/X']
DOCS_W32 = ['../Source/WindowSystem/WIN32']
DOCS_GLUT = ['../Source/WindowSystem/GLUT']
DOCS_QT = ['../Source/WindowSystem/QT']
# defines for starter guide generation
env['DOC_LATEX'] = "NO"
env['DOC_DOT'] = "NO"
# DOC_DOT ?= "YES"
DOC_INTRO = [os.path.join('tutorial', 'main.dox')]
# The separate documentation pages
DOC_TUTORIAL_PAGES = [
'tutorial/main.dox',
'tutorial/introduction.dox',
'tutorial/firstapp.dox',
'tutorial/basics.dox',
'tutorial/nodecores.dox',
'tutorial/geometry.dox',
'tutorial/light.dox',
'tutorial/windows.dox',
'tutorial/traversal.dox',
'tutorial/multithreading.dox',
'tutorial/clustering.dox',
'tutorial/modelling.dox',
'tutorial/newaction.dox',
'tutorial/text.dox',
'tutorial/solutions.dox',
'tutorial/qt.dox',
'tutorial/doxypages.dox',
'Code/acknowledgements.dox',
'Code/faq.dox' ]
DOC_OLD_PAGES = ['Code/mainpage.dox'] + DOC_INTRO + [
'Code/scenegraph.dox',
'../Source/Base/Base/Base.dox',
'../Source/System/System.dox',
'../Source/Base/Field/Field.dox',
'../Source/Base/Functors/Functors.dox',
'../Source/Base/Network/Socket.dox',
'../Source/Base/Network/Connection.dox',
'../Source/Base/StringConversion/StringConversion.dox',
'../Source/System/FieldContainer/FieldContainer.dox',
'../Source/System/Image/Image.dox',
'../Source/System/NodeCores/NodeCores.dox',
'../Source/System/NodeCores/Groups/Groups.dox',
'../Source/System/NodeCores/Groups/Base/GroupsBase.dox',
'../Source/System/NodeCores/Groups/Light/GroupsLight.dox',
'../Source/System/NodeCores/Groups/Misc/GroupsMisc.dox',
'../Source/System/NodeCores/Drawables/Drawables.dox',
'../Source/System/NodeCores/Drawables/Base/DrawablesBase.dox',
'../Source/System/NodeCores/Drawables/Geometry/DrawablesGeometry.dox',
'../Source/System/NodeCores/Drawables/Misc/DrawablesMisc.dox',
'../Source/System/NodeCores/Drawables/Particles/DrawablesParticles.dox',
'../Source/System/State/State.dox',
'../Source/System/Material/Material.dox',
'../Source/System/Action/Action.dox',
'../Source/System/Window/Window.dox',
'../Source/System/Window/OGLExt.dox',
'../Source/WindowSystem/WindowSystem.dox',
'../Source/WindowSystem/GLUT/WindowGlut.dox',
'../Source/WindowSystem/QT/WindowQt.dox',
'../Source/WindowSystem/X/WindowX.dox',
'../Source/WindowSystem/WIN32/WindowWin32.dox',
'../Source/System/FileIO/FileIO.dox',
'../Source/System/System.dox',
'../Source/System/Cluster/Cluster.dox',
'../Source/System/RenderingBackend/RenderingBackend.dox',
'../Source/System/Statistics/Statistics.dox' ]
DOC_PAGES = ['../Common/dummyClasses.dox'] + DOC_TUTORIAL_PAGES +
DOC_OLD_PAGES
DOC_LIBS = DOCS_BASE + DOCS_SYS + DOCS_EXP + DOCS_X + DOCS_W32 + DOCS_GLUT \
+ DOCS_QT + DOC_PAGES
env['DOC_IMAGE_PATHES'] = './Images'
# All the files that are merged to generate the whole documentation
DOC_FILES = DOC_LIBS + DOC_PAGES
env['DOC_FILES'] = " ".join(DOC_FILES)
#DOC_ENV = 'DOC_PROJECT_NAME="' + DOC_PROJECT_NAME \
#+ '" DOCDIR="' + DOCDIR \
#+ '" DOC_PROJECT_NUMBER=' + DOC_PROJECT_NUMBER \
#+ ' DOC_FILES="' + " ".join(DOC_FILES) \
#+ '" DOC_LATEX="' + DOC_LATEX \
#+ '" DOC_DOT="' + DOC_DOT \
#+ '" OSG_USE_DOC_LEVEL="' + DOC_LEVEL \
#+ '" DOC_LEVEL_PREDEF="' + DOC_LEVEL_PREDEF \
#+ '" DOC_LEVEL_ENABLED="' + DOC_LEVEL_ENABLED \
#+ '" DOC_IMAGE_PATHES="' + env['DOC_IMAGE_PATHES'] + '"'
# find all headers and create dummy classes
os.system('rm -f ../Common/dummyClasses.list')
os.system('touch ../Common/dummyClasses.list')
os.system('for i in ' + " ".join(DOC_LIBS) + ' ; do \
find $i -name ''*.h'' -print >> ../Common/dummyClasses.list; \
done')
os.system('cat ../Common/dummyClasses.list | xargs perl \
../Common/makeDummyClasses > ../Common/dummyClasses.dox')
os.system('rm -f ../Common/dummyClasses.list')
# find all used images and convert them (if necessary)
#DOC_IMAGE_TYPE = 'html'
#os.system('rm -f imagelist')
#os.system('for i in ' + " ".join(DOC_PAGES) + ' ; do \
#fgrep "\image ' + DOC_IMAGE_TYPE + '" $i | cut -d'' '' -f3-3 |
\
#sed -e ''s|^|Images/|'' >> imagelist; \
#done')
#for line in open('imagelist','r').readlines():
#ext = line[-3:] # DOES NOT WORK FOR PS FILES...
#basename = line[:-4]
#if (ext == 'gif'):
#os.system('convert -compress none ' + line + ' PS:' + basename + '.eps')
#if (ext == 'tif'):
#os.system('convert -compress none ' + line + ' PS:' + basename + '.eps')
#if (ext == 'jpg'):
#os.system('convert -compress none ' + line + ' PS:' + basename + '.eps')
#if (ext == 'fig'):
#os.system('fig2dev -L eps ' + line + ' > ' + basename + '.eps')
#if (ext == 'gpl'):
#os.system('gnuplot ' + line)
#if (ext == 'ps'):
#os.system('convert -compress none ' + line + ' PS:' + basename + '.eps')
#$(MAKE) `cat imagelist`
#Images/%.eps: Images/%.gif
#convert -compress none $< PS:$@
#Images/%.eps: Images/%.tif
#convert -compress none $< PS:$@
#Images/%.eps: Images/%.jpg
#convert -compress none $< PS:$@
## jpeg2ps gives better results, but is not usually available
## jpeg2ps -q $< > $@
#Images/%.eps: Images/%.fig
#(cd Images && fig2dev -L eps $(notdir $<) $(notdir $@) )
#Images/%.eps: Images/%.gpl
#gnuplot $<
#Images/%.eps: Images/%.ps
#cp $< $@
#touch $@
#Images/%.eps: Images/%.eps.gz
#gzip -dc $< > $@
#touch $@
#Images/%.eps: Images/%.png
#convert -compress none $< PS:$@
#Images/%.png: Images/%.fig
#(cd Images && fig2dev -L png $(notdir $<) $(notdir $@) )
#Images/%.png: Images/%.jpg
#convert $< $@
#Images/%.png: Images/%.tif
#convert $< $@
#Images/%.png: Images/%.eps.gz
#gzip -dc $< | convert - $@
env.Tool('doxygen', toolpath = '.')
env.Doxygen('../Common/Doxygen_x86_64-unknown-linux-gnu.cfg')
# do doxygen
#cmd = DOC_ENV + ' doxygen ../Common/Doxygen_'+ BUILD_ENV + '.cfg -d'
#print cmd
#os.system(cmd)
os.system('rm -f ../Common/dummyClasses.dox')
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users