[Scons-users] Handling of dependencies using Scanner()
Henry Gomersall
heng at cantab.net
Fri Oct 11 09:23:40 EDT 2013
On 10/10/13 10:19, Henry Gomersall wrote:
> I've built a tool for handling Jinja templates. As part of this, I've
> made a Scanner that inspects the jinja templates and extracts the
> files that it depends upon (it acquires with include or extends).
>
> I've added the Scanner to the environment, and with suitable print
> statements I can observe the scanner in operation, and note that it is
> successfully extracting all the filenames (from which the node list is
> created and returned).
>
> The question is this: Once the nodes on which the current node depends
> are extracted and returned by the scanner function, I would expect
> those nodes to be part of the dependency tree - that is, modifications
> to those nodes would trigger a rebuild of the dependent file. This
> does not seem to be happening with me.
>
> I can only assume that there is an additional step to make the nodes
> part of the dependency tree. To be clear, I don't need to explicitly
> build those nodes that are returned from the scanner function, just
> that modifications to those nodes causes a rebuild.
I've manged to fix this by recursing through all the nodes that I
previously just returned, scanning them as well and building a bigger
list. See: https://gist.github.com/hgomersall/6915968
I assumed that the scanner would automatically handle a new node that
was added to the dependency tree if the suffix agreed with what the
scanner already had - apparently not. Can someone confirm this?
Cheers,
Henry
More information about the Scons-users
mailing list