00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 from os.path import join,abspath
00020 from repro.BookKeeping import ReproProject
00021
00022
00023
00024
00025
00026 def BookAction( target, source, env ):
00027
00028 allbooks = set()
00029 used_ins = ReproProject.used_ins
00030
00031 uses = {}
00032
00033 for key, value in used_ins.iteritems():
00034 for book in value:
00035 uu = uses.setdefault(book,[])
00036 uu.append(key)
00037
00038 [ allbooks.update(value) for value in used_ins.itervalues() ]
00039
00040 doxy = open( str(target[0]), 'w' )
00041
00042 print >> doxy, "// repro"
00043 print >> doxy, "// This File is automatically generated"
00044 print >> doxy
00045
00046 print >> doxy, "// Creating placeholder references for book pages in case they do not exists"
00047 print >> doxy, "/*!"
00048 print >> doxy, "@page sbooks"
00049
00050 for book in allbooks:
00051 book_ref = book.replace('/','_')
00052 print >> doxy, " @arg @subpage %(book_ref)s" %vars()
00053 print >> doxy
00054 for book in allbooks:
00055 book_ref = book.replace('/','_')
00056 print >> doxy, "@page %(book_ref)s %(book)s" %vars()
00057 print >> doxy, " @section sbuses Uses"
00058 for uu in uses[book]:
00059 print >> doxy, " @arg @ref %(uu)s" %vars()
00060
00061 print >> doxy, "*/"
00062 print >> doxy
00063
00064 print >> doxy, "// Creating 'USED IN': sections for all main programs"
00065 print >> doxy, "/*!"
00066 for key, value in used_ins.iteritems():
00067 print >> doxy
00068 print >> doxy, "@page %(key)s" %vars()
00069 print >> doxy, " @section used_ins Used In: "
00070 for book in value:
00071 book_ref = book.replace('/','_')
00072 print >> doxy, " @arg @ref %(book_ref)s" %vars( )
00073
00074 print >> doxy, "*/"
00075 pass
00076
00077
00078
00079
00080
00081
00082 def book_emitter( target, source, env ):
00083
00084 env.Alias( 'book', target )
00085
00086 return target, source
00087 pass
00088
00089