9c7858639fcb468fa54c405f492437090111be28
[senf.git] / satscons / Doxygen.py
1 import SCons.Script.SConscript
2 import SCons.Builder
3 import SCons.Defaults
4 import os.path
5
6 def replace_ext(n,ext):
7     base,ext = os.path.splitext(n)
8     return base+ext
9
10 def Doxygen(env, target, source, image=[]):
11     global __file__
12     path, name = os.path.split(str(target))
13     stamp = os.path.join(path, '.'+name+'.stamp')
14     dir = env.Dir(target)
15     mak = os.path.join(os.path.split(__file__)[0],'imgconvert.mak')
16     env.Depends(dir,
17                 [ env.Command(os.path.splitext(img)[0]+".png", img,
18                               [ 'TERM=dumb make -f %s $TARGET' % mak ])
19                   for img in image ] +
20                 [ env.Command(stamp, source + [ os.path.join(path,"Doxyfile") ],
21                               [ 'cd $TARGET.dir && $DOXYGENCOM',
22                                 "touch $TARGET" ],
23                               source_scanner = SCons.Defaults.ObjSourceScan) ])
24     env.Clean(stamp, dir)
25     return dir
26
27 def generate(env):
28     env['DOXYGENCOM'] = 'doxygen'
29     env.__class__.Doxygen = Doxygen
30
31 def exists(env):
32     return 1