Changeset dd43d0b in rtems-docs


Ignore:
Timestamp:
Oct 30, 2016, 9:48:21 PM (3 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.11, master
Children:
5df0d1e
Parents:
47aad7a
git-author:
Chris Johns <chrisj@…> (10/30/16 21:48:21)
git-committer:
Chris Johns <chrisj@…> (10/30/16 21:48:35)
Message:

waf: Add an install command.

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • common/waf.py

    r47aad7a rdd43d0b  
    7979        ctx.end_msg("yes (%s)" % ".".join(map(str, ver)))
    8080
    81 
    82 def doc_pdf(ctx, source_dir, conf_dir):
    83         if not ctx.env.PDFLATEX or not ctx.env.MAKEINDEX:
    84                 ctx.fatal('The programs pdflatex and makeindex are required')
    85 
    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))
    94         )
    95 
    96         ctx.add_group()
    97 
    98         ctx(
    99                 features        = 'tex',
    100                 cwd             = output_dir,
    101                 type            = 'pdflatex',
    102                 source          = "latex/%s.tex" % ctx.path.name,
    103                 prompt          = 0
    104         )
    105 
    106 def doc_singlehtml(ctx, source_dir, conf_dir):
    107         if not ctx.env.BIN_INLINER:
    108                 ctx.fatal("Node inliner is required install with 'npm install -g inliner' (https://github.com/remy/inliner)")
    109 
    110         ctx(
    111                 rule    = "${BIN_SPHINX_BUILD} -b singlehtml -c %s -j %d -d build/doctrees %s build/singlehtml" % (conf_dir, ctx.options.jobs, source_dir),
    112                 cwd             = ctx.path.abspath(),
    113                 source  = ctx.path.ant_glob('**/*.rst'),
    114                 target  = "singlehtml/index.html"
    115         )
    116 
    117         ctx.add_group()
    118 
    119         ctx(
    120                 rule    = "${BIN_INLINER} ${SRC} > ${TGT}",
    121                 source  = "singlehtml/index.html",
    122                 target  = "singlehtml/%s.html" % ctx.path.name
    123         )
    124 
    125 def 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 
    131 def build_type(ctx):
    132         build_type = 'html'
    133         if ctx.options.pdf:
    134                 build_type = 'pdf'
    135         return build_type
    136 
    137 def 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
    14681
    14782def html_resources(ctx):
     
    167102#       )
    168103
     104def doc_pdf(ctx, source_dir, conf_dir):
     105        if not ctx.env.PDFLATEX or not ctx.env.MAKEINDEX:
     106                ctx.fatal('The programs pdflatex and makeindex are required')
     107
     108        build_dir = ctx.path.get_bld().relpath()
     109        output_node = ctx.path.get_bld().make_node('latex')
     110        output_dir = output_node.abspath()
     111
     112        ctx(
     113                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),
     114                cwd          = ctx.path,
     115                source       = ctx.path.ant_glob('**/*.rst'),
     116                target       = ctx.path.find_or_declare("latex/%s.tex" % (ctx.path.name))
     117        )
     118
     119        ctx.add_group()
     120
     121        ctx(
     122                features     = 'tex',
     123                cwd          = output_dir,
     124                type         = 'pdflatex',
     125                source       = "latex/%s.tex" % ctx.path.name,
     126                prompt       = 0
     127        )
     128
     129        ctx.install_files('${PREFIX}/%s' % (ctx.path.name),
     130                          'latex/%s.pdf' % (ctx.path.name),
     131                          cwd = output_node,
     132                          quiet = True)
     133
     134def doc_singlehtml(ctx, source_dir, conf_dir):
     135        if not ctx.env.BIN_INLINER:
     136                ctx.fatal("Node inliner is required install with 'npm install -g inliner' (https://github.com/remy/inliner)")
     137
     138        html_resources(ctx)
     139
     140        ctx(
     141                rule    = "${BIN_SPHINX_BUILD} -b singlehtml -c %s -j %d -d build/doctrees %s build/singlehtml" % (conf_dir, ctx.options.jobs, source_dir),
     142                cwd             = ctx.path.abspath(),
     143                source  = ctx.path.ant_glob('**/*.rst'),
     144                target  = "singlehtml/index.html",
     145                install_path = None
     146        )
     147
     148        ctx.add_group()
     149
     150        ctx(
     151                rule    = "${BIN_INLINER} ${SRC} > ${TGT}",
     152                source  = "singlehtml/index.html",
     153                target  = "singlehtml/%s.html" % ctx.path.name,
     154                install_path = None
     155        )
     156
     157def doc_html(ctx, conf_dir, source_dir):
     158
     159        html_resources(ctx)
     160
     161        build_dir = ctx.path.get_bld().relpath()
     162        output_node = ctx.path.get_bld().make_node('html')
     163        output_dir = output_node.abspath()
     164
     165        ctx(
     166                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),
     167                cwd          = ctx.path,
     168                source       =  ctx.path.ant_glob('**/*.rst'),# + ctx.path.ant_glob('conf.py'),
     169                target       = ctx.path.find_or_declare('html/index.html'),
     170                install_path = None
     171        )
     172
     173        ctx.install_files('${PREFIX}/%s' % (ctx.path.name),
     174                          output_node.ant_glob('**/*'),
     175                          cwd = output_node,
     176                          relative_trick = True,
     177                          quiet = True)
     178
     179def is_top_build(ctx):
     180        from_top = False
     181        if ctx.env['BUILD_FROM_TOP'] and ctx.env['BUILD_FROM_TOP'] == 'yes':
     182                from_top = True
     183        return from_top
     184
     185def build_type(ctx):
     186        build_type = 'html'
     187        if ctx.options.pdf:
     188                build_type = 'pdf'
     189        return build_type
     190
     191def build_dir_setup(ctx):
     192        btype = build_type(ctx)
     193        where = btype
     194        if is_top_build(ctx):
     195                where = os.path.join(ctx.path.name, where)
     196        bnode = ctx.bldnode.find_node(where)
     197        if bnode is None:
     198                ctx.bldnode.make_node(where).mkdir()
     199        return where
     200
    169201def cmd_build(ctx, conf_dir = ".", source_dir = "."):
    170202        build_dir_setup(ctx)
     
    178210                doc_singlehtml(ctx, source_dir, conf_dir)
    179211        else:
    180                 html_resources(ctx)
    181                 build_dir = ctx.path.get_bld().relpath()
    182                 output_dir = os.path.join(ctx.path.get_bld().abspath(), 'html')
    183                 ctx(
    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),
    185                         cwd     = ctx.path,
    186                         source =  ctx.path.ant_glob('**/*.rst'),# + ctx.path.ant_glob('conf.py'),
    187                         target = ctx.path.find_or_declare('html/index.html')
    188                 )
     212                doc_html(ctx, source_dir, conf_dir)
    189213
    190214def cmd_options(ctx):
  • user/wscript

    r47aad7a rdd43d0b  
    33path.append(abspath('../common/'))
    44
    5 from waf import cmd_configure as configure, cmd_build as build, \
    6                 spell, cmd_spell, cmd_options as options, linkcheck, cmd_linkcheck
     5from waf import cmd_configure as configure, \
     6                cmd_build as build, \
     7                spell, \
     8                cmd_spell, \
     9                cmd_options as options, \
     10                linkcheck, cmd_linkcheck
  • wscript

    r47aad7a rdd43d0b  
    2828    for b in building:
    2929        conf.recurse(b)
    30 
    3130    conf.env['BUILD_FROM_TOP'] = 'yes'
    3231
     
    3433    for b in building:
    3534        ctx.recurse(b)
     35
     36def install(ctx):
     37    for b in building:
     38        ctx.recurse(b)
Note: See TracChangeset for help on using the changeset viewer.