SCons code generation and VariantDir -


i scons generate source files me in src/ directory, , build them other source file in build directory build/variantx.

this scons file:

import scons  def my_builder(env, target, source):     # stuff     pass  env = environment() env.variantdir('build/variant1/', 'src', duplicate=0) env.command('src/foobar.cc', 'src/foobar.input', action=my_builder) env.program('bin/test', [     'build/variant1/foobar.cc',     'build/variant1/test.cc',     ]) 

this errors following message:

source src/foobar.cc not found, needed target build/variant1/foobar.o

which don't think correct, considering indeed providing command build src/foobar.cc.

now, tried few workarounds:

  • if replace build/variant1/foobar.cc in program src/foobar.cc, work, foobar.o gets created in src/ rather build/variant1

  • if replace src/foobar.cc in command build/variant1/foobar.cc, work, code generated in src/; (also because things relative paths in include directories won't work unless duplicate=1)

  • if duplicate=1, similar error message, time mentioning variant directory:

    source build/variant1/foobar.cc not found, needed target build/variant1/foobar.o

is there way around this? limitation/bug in scons, or there fundamental misunderstanding on side?

i suggest creating explicit dependency between command() , program() calls follows:

target1 = env.command('src/foobar.cc', 'src/foobar.input', action=my_builder) target2 = env.program('bin/test', [                       'build/variant1/foobar.cc',                       'build/variant1/test.cc',                       ]) depends(target2, target1) # should work # depends(target2, "src/foobar.cc") 

or specify target command() part of source program() follows:

target1 = env.command('src/foobar.cc', 'src/foobar.input', action=my_builder) env.program('bin/test', [             target1,             'build/variant1/test.cc',             ]) 

i havent tested this, im not sure how work in conjunction call variantdir()

here info regarding generating source code scons.


Comments

Popular posts from this blog

Change php variable from jquery value using ajax (same page) -

How can I fetch data from a web server in an android application? -

jquery - How can I dynamically add a browser tab? -