Changeset f529417 in rtems-docs


Ignore:
Timestamp:
Oct 30, 2016, 1:36:15 AM (3 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.11, master
Children:
cddb06c
Parents:
761b082
git-author:
Chris Johns <chrisj@…> (10/30/16 01:36:15)
git-committer:
Chris Johns <chrisj@…> (10/30/16 01:36:30)
Message:

waf: Add top build support.

Files:
2 added
1 edited

Legend:

Unmodified
Added
Removed
  • common/waf.py

    r761b082 rf529417  
    6262        return ver
    6363
     64def sphinx_verbose(ctx):
     65        return ctx.options.sphinx_verbose
    6466
    6567def cmd_configure(ctx):
     
    8284                ctx.fatal('The programs pdflatex and makeindex are required')
    8385
    84         ctx(
    85                 rule    = "${BIN_SPHINX_BUILD} -b latex -c %s -j %d -d build/doctrees %s build/latex" % (conf_dir, ctx.options.jobs, source_dir),
    86                 cwd             = ctx.path,
    87                 source  = ctx.path.ant_glob('**/*.rst'),
    88                 target  = "latex/%s.tex" % ctx.path.name
     86        build_dir = ctx.path.get_bld().relpath()
     87        output_dir = os.path.join(ctx.path.get_bld().abspath(), 'latex')
     88
     89        ctx(
     90                rule   = "${BIN_SPHINX_BUILD} %s -b latex -c %s -d build/%s/doctrees %s %s" % (sphinx_verbose(ctx), conf_dir, build_dir, source_dir, output_dir),
     91                cwd    = ctx.path,
     92                source = ctx.path.ant_glob('**/*.rst'),
     93                target = ctx.path.find_or_declare("latex/%s.tex" % (ctx.path.name))
    8994        )
    9095
     
    9398        ctx(
    9499                features        = 'tex',
    95                 cwd             = "%s/latex/" % ctx.path.get_bld().abspath(),
     100                cwd             = output_dir,
    96101                type            = 'pdflatex',
    97                 source          = ctx.bldnode.find_or_declare("latex/%s.tex" % ctx.path.name),
     102                source          = "latex/%s.tex" % ctx.path.name,
    98103                prompt          = 0
    99104        )
     
    118123        )
    119124
     125def is_top_build(ctx):
     126        from_top = False
     127        if ctx.env['BUILD_FROM_TOP'] and ctx.env['BUILD_FROM_TOP'] == 'yes':
     128                from_top = True
     129        return from_top
     130
     131def build_type(ctx):
     132        build_type = 'html'
     133        if ctx.options.pdf:
     134                build_type = 'pdf'
     135        return build_type
     136
     137def build_dir_setup(ctx):
     138        btype = build_type(ctx)
     139        where = btype
     140        if is_top_build(ctx):
     141                where = os.path.join(ctx.path.name, where)
     142        bnode = ctx.bldnode.find_node(where)
     143        if bnode is None:
     144                ctx.bldnode.make_node(where).mkdir()
     145        return where
    120146
    121147def html_resources(ctx):
    122148        for dir_name in ["_static", "_templates"]:
    123149                files = ctx.path.parent.find_node("common").ant_glob("%s/*" % dir_name)
    124                 ctx.path.get_bld().make_node(dir_name).mkdir() # dirs
    125 
     150                fnode = ctx.path.get_bld().make_node(os.path.join('html', dir_name))
     151                fnode.mkdir() # dirs
    126152                ctx(
    127                         features    = "subst",
    128                         is_copy     = True,
    129                         source      = files,
    130                         target      = [ctx.bldnode.find_node(dir_name).get_bld().make_node(x.name) for x in files]
     153                        features = "subst",
     154                        is_copy  = True,
     155                        source   = files,
     156                        target   = [fnode.make_node(x.name) for x in files]
    131157                )
    132158
     
    141167#       )
    142168
    143 
    144 
    145 
    146 def cmd_build(ctx, conf_dir=".", source_dir="."):
     169def cmd_build(ctx, conf_dir = ".", source_dir = "."):
     170        build_dir_setup(ctx)
     171
    147172        srcnode = ctx.srcnode.abspath()
    148173
     
    154179        else:
    155180                html_resources(ctx)
     181                build_dir = ctx.path.get_bld().relpath()
     182                output_dir = os.path.join(ctx.path.get_bld().abspath(), 'html')
    156183                ctx(
    157                         rule   = "${BIN_SPHINX_BUILD} -b html -c %s -j %d -d build/doctrees %s build/html" % (conf_dir, ctx.options.jobs, source_dir),
     184                        rule   = "${BIN_SPHINX_BUILD} %s -b html -c %s -d build/%s/doctrees %s %s" % (sphinx_verbose(ctx), conf_dir, build_dir, source_dir, output_dir),
    158185                        cwd     = ctx.path,
    159186                        source =  ctx.path.ant_glob('**/*.rst'),# + ctx.path.ant_glob('conf.py'),
     
    162189
    163190def cmd_options(ctx):
     191        ctx.add_option('--sphinx-verbose', action='store', default="-Q", help="Sphinx verbose.")
    164192        ctx.add_option('--pdf', action='store_true', default=False, help="Build PDF.")
    165193        ctx.add_option('--singlehtml', action='store_true', default=False, help="Build Single HTML file, requires Node Inliner")
Note: See TracChangeset for help on using the changeset viewer.