81309b2b595bd482c378df13bf64276e3987c99b
[senf.git] / senfscons / PkgDraw.py
1 ## \file
2 # \brief PkgDraw builder
3
4 ## \package senfscons.PkgDraw
5 # \brief Generate network packet diagram
6 #
7 # This builder will call pkgdraw to scan a header file and create network package diagrams
8 # from SENF_PARSER macro calls.
9 #
10 # \par Construction Envrionment Variables:
11 # <table class="senf">
12 # <tr><td>\c PKGDRAWCOM</td><td>pkgdraw command, defaults to \c #/doclib/pkgdraw</td></tr>
13 # <tr><td>\c PKGDRAWPACKETS</td><td>list packet types to include in
14 #            the diagram, defaults to empty (include all packets)</td></tr>
15 # </table>
16 #
17 # \ingroup builder
18
19 import os
20 import SCons.Builder, SCons.Action
21
22 PkgDraw = SCons.Builder.Builder(
23     suffix = ".png",
24     src_suffix = ".hh",
25     action = SCons.Action.Action("$PKGDRAWCOM $PKGDRAWPACKETS <$SOURCE >$TARGET"),
26     single_source = 1)
27
28 def generate(env):
29     env['BUILDERS']['PkgDraw'] = PkgDraw
30     env['PKGDRAWCOM'] = env.Dir('#').abspath + "/doclib/pkgdraw"
31     env['PKGDRAWPACKETS'] = ''
32
33 def exists(env):
34     return env.Detect("#/doclib/pkgdraw")