only its section of the input file.
However, since the input file may contain a lot of data,
we want to open the input file only if its timestamp has changed.
- This could done with a custom
+ This could done with a custom
&Decider; function that might look something like this:
+ Another thing to look out for, is the fact that the three
+ attributes above may not be present at the time of the first run.
+ Without any prior build, no targets got created and no
+ <filename>.sconsign</filename> DB file exists yet.
+ So, it is recommended to always check whether the
+ <varname>prev_ni</varname> attribute in question is available.
+ We finally present a small example for a
+ <varname>csig</varname>-based decider function. Note how the
+ signature information for the <varname>dependency</varname> file
+ has to get initialized via <function>get_csig</function>
+ during each function call (this is mandatory!).
+ def config_file_decider(dependency, target, prev_ni):
+ # We always have to init the .csig value...
+ dep_csig = dependency.get_csig()
+ # .csig may not exist, because no target was built yet...
+ if 'csig' not in dir(prev_ni):
+ # Target file may not exist yet
+ if not os.path.exists(str(target.abspath)):
+ if dep_csig != prev_ni.csig:
+ # Some change on source file => update installed one
+ f = open("test.txt","a")
+ # Activate our own decider function