Beispiel #1
0
def _builddoc(env, name, source=_null, **kw):
    import SCons.Errors
    try: builder = kw['builder']
    except KeyError: builder = 'DVI'

    if builder == 'DVI' and 'suffix' in kw: del kw['suffix']
    if source is _null: source = name

    alias = TeXASCommon.get_auto_alias(name, 'alias', **kw)
    target = TeXASCommon.get_auto_target(env, name, **kw)
    
    try: deps = kw['deps']
    except KeyError: deps = None

    kw = _del_local_keywords(kw)

    if builder == 'DVI':
        target = env.DVI(target, source, **kw)
        if deps: env.Depends(target, deps)
    elif builder == 'PDF':
        try: kw['DVIPDFCOM'] = env['TEXASDVIPDFCOM']
        except KeyError: pass
        target = env.PDF(target, source, **kw)
        if deps: env.Depends(target, deps)
    elif builder == 'DVIPDFM':
        try: kw['DVIPDFMCOM'] = env['TEXASDVIPDFMCOM']
        except KeyError: pass
        target = env.DVIPDFM(target, source, **kw)
        if deps: env.Depends(target, deps)
    else:
        raise SCons.Errors.UserError('Unsupported builder: %r' % builder)
    if alias:
        env.Alias(alias, target)
        env.AlwaysBuild(alias)
    return target
Beispiel #2
0
def _tar(env, name, source, **kw):
    """Core of the `Tar()`, `TarGz()` and `TarBz2()`"""
    import SCons.Util
    import platform

    target = TeXASCommon.get_auto_target(env, name, **kw)
    alias = TeXASCommon.get_auto_alias(name, 'alias', **kw)

    # Some paths are stripped from file names in the archive
    dirs2strip = TeXASCommon.get_strip_dirs(env, **kw)

    kw = _del_local_keywords(kw)
    if dirs2strip:
        kw['_dirs2strip'] = dirs2strip 
        kw['_joinpathre'] = TeXASCommon.joinpathre
        if platform.system() == 'Windows':
            t = "--transform='s:^^\\(${_joinpathre(_dirs2strip)}\\)::S'"
        else:
            t = "--transform='s:^\\(${_joinpathre(_dirs2strip)}\\)::S'"
        flags = SCons.Util.CLVar(t)
        kw['TARFLAGS'] = TeXASCommon.append_flags(env, 'TARFLAGS', flags, **kw)

    target = env.Tar(target, source, **kw)

    if alias:
        env.Alias(alias, target)
        env.AlwaysBuild(alias)
    return target