[Scons-users] Handling implicit dependencies for generated source files in variant dirs

Henry Gomersall heng at cantab.net
Thu Oct 10 06:51:22 EDT 2013


On 10/10/13 11:39, Dirk Bächle wrote:

> On 10.10.2013 12:16, Henry Gomersall wrote:

>> [...]

>> The tool is here:

>> https://gist.github.com/hgomersall/6915968#file-jinja-py

>>

> Had a first look right now.

>

>> [...]

>>

>>

>>

>> The templates are actually built from the top level SConstruct file,

>> using something like the following:

>>

>> c_file = env.Jinja(os.path.join('src', target_c_file), filenames)

>>

> As far as I understood what you said about this Tool, this Builder

> would also create additional *.h files right?

>

> Then, the problem is clear. Your Builder is missing a proper Emitter,

> telling SCons which targets exactly result from the call of the

> Jinja() method. That's why it can't make the proper connection between

> your auto-generated stuff and the rest of the DAG.


Apologies, I wasn't quite clear enough. The h files are generated with
their own explicit call to env.Jinja().

That is, I do the same for the .h file:
h_file = env.Jinja(os.path.join(source_dir, target_h_file),
os.path.join(template_dir, target_source_name + '.h.jinja'))

There is no side effect of creating the .h file, so I assumed that the
dependency is inferred from that call...?

Cheers,

Henry


More information about the Scons-users mailing list