Skip to content

Emitters and overrides #810

Open
Open
@bdbaddog

Description

@bdbaddog

This issue was originally created at: 2004-05-11 09:41:12.
This issue was reported by: wiedeman.
wiedeman said at 2004-05-11 09:41:12

in the qt-tool, we use emitters to add more sources to the supplied sources of, e.g. the Program builder.

My first try was to do this:

def ProgEmitter(target,source,env):
    # do scanning -> name_cpp
    source.append(name_cpp)
    return (target, source)

which doesn't work, because the multistep magic is already done (which is ok, when the emitter is called). The second try seemed to work:

def ProgEmitter(target,source,env):
    # do scanning -> name_cpp
    source.append(env.StaticObject(name_cpp))
    return (target, source)

But now, i noticed, that overrides like CPPPATH="..." got lost in the env.StaticObject call (i actually tried with 0.94). Changing the function to

def ProgEmitter(target,source,env):
    # do scanning -> name_cpp
    env.StaticObject.env = env
    source.append(env.StaticObject(name_cpp))
    return (target, source)

seems to work, but doesn't look clean.

Just a hint: It looks like env.Override and BuilderWrapper don't work well with each other due to copy.copy usage.

Christoph

issues@scons said at 2004-05-11 09:41:12

Converted from SourceForge tracker item 952016

gregnoel said at 2009-04-30 15:15:54

Bug party triage. There are some comments in the discussion page for the ReArchitecture design work in the wiki that might offer a partial solution, as does the DynamicSourceGenerator page. We can't do anything about it right now, but put a link there to refer to this bug so we'll return here when we undertake that task.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions