aboutsummaryrefslogtreecommitdiff
path: root/lib/jsoncpp/doc/sconscript
blob: 7b78a21d8024580b070bdc2e9bcb9cbd8ed86f2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Import( 'env' )
import os.path

if 'doxygen' in env['TOOLS']:    
    doc_topdir = str(env['ROOTBUILD_DIR'])
    html_dir = 'jsoncpp-api-doc'

    doxygen_inputs = env.Glob( includes = '*.dox', dir = '#doc' ) \
                     + env.Glob( includes = '*.h', dir = '#include/json/' ) \
                     + env.Glob( includes = ('*.dox','*.h','*.inl','*.cpp'),
                                 dir = '#src/lib_json' )
##    for p in doxygen_inputs:
##        print p.abspath

    top_dir = env.Dir('#').abspath
    include_top_dir = env.Dir('#include').abspath
    env['DOXYFILE_DICT'] = { 'PROJECT_NAME': 'JsonCpp',
                             'PROJECT_NUMBER': env['JSONCPP_VERSION'],
                             'STRIP_FROM_PATH': top_dir,
                             'STRIP_FROM_INC_PATH': include_top_dir,
                             'HTML_OUTPUT': html_dir,
                             'HTML_HEADER': env.File('#doc/header.html').abspath,
                             'HTML_FOOTER': env.File('#doc/footer.html').abspath,
                             'INCLUDE_PATH': include_top_dir,
                             'PREDEFINED': 'JSONCPP_DOC_EXCLUDE_IMPLEMENTATION JSON_VALUE_USE_INTERNAL_MAP'
                             }
    env['DOXYFILE_FILE'] = 'doxyfile.in'
    doxfile_nodes = env.Doxyfile( os.path.join( doc_topdir, 'doxyfile' ), doxygen_inputs )
    html_doc_path = os.path.join( doc_topdir, html_dir )
    doc_nodes = env.Doxygen( source = doxfile_nodes,
                             target = os.path.join( html_doc_path, 'index.html' ) )
    alias_doc_cmd = env.Alias('doc', doc_nodes )
    env.Alias('doc', env.Install( html_doc_path, '#README.txt' ) )
    if 'TarGz' in env['BUILDERS']:
		targz_path = os.path.join( env['DIST_DIR'], '%s.tar.gz' % html_dir )
		zip_doc_cmd = env.TarGz( targz_path, [env.Dir(html_doc_path)],
								 TARGZ_BASEDIR = env['ROOTBUILD_DIR'] )
		env.Depends( zip_doc_cmd, alias_doc_cmd )
		env.Alias( 'doc-dist', zip_doc_cmd )
##    
##    doxyfile = env.SubstInFile( '#doc/doxyfile', 'doxyfile.in',
##                                SUBST_DICT = {
##                                    '%JSONCPP_VERSION%' : env['JSONCPP_VERSION'],
##                                    '%TOPDIR%' : env.Dir('#').abspath,
##                                    '%DOC_TOPDIR%' : str(doc_topdir) } )
##    doc_cmd = env.Doxygen( doxyfile )
##    alias_doc_cmd = env.Alias('doc', doc_cmd )
##    env.AlwaysBuild(alias_doc_cmd)
##
##    for dir in doc_cmd:
##        env.Alias('doc', env.Install( '#' + dir.path, '#README.txt' ) )
##        filename = os.path.split(dir.path)[1]
##        targz_path = os.path.join( env['DIST_DIR'], '%s.tar.gz' % filename )
##        zip_doc_cmd = env.TarGz( targz_path, [env.Dir(dir)],
##                                 TARGZ_BASEDIR = doc_topdir )
##        env.Depends( zip_doc_cmd, alias_doc_cmd )
##        env.Alias( 'doc-dist', zip_doc_cmd )
##
##    # When doxyfile gets updated, I get errors on the first pass.
##    # I have to run scons twice.  Something is wrong with the dependencies
##    # here, but I avoid it by running "scons doc/doxyfile" first.