scons icon indicating copy to clipboard operation
scons copied to clipboard

Emitters and overrides

Open bdbaddog opened this issue 8 years ago • 0 comments

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.

bdbaddog avatar Jan 02 '18 07:01 bdbaddog