[Scons-users] Build results of a scanner function?
    Dirk Bächle 
    tshortik at gmx.de
       
    Thu Aug 16 03:05:01 EDT 2012
    
    
  
Hi Justin,
my guess is that you'll have to parse the manifest file a second time 
directly in your SConstruct. For each .css file you have to tell SCons 
how it is built from a .less file:
   f = open('manifest','r')
   for l in f:
     env.Less(target= , source= )
   f.close()
(from the top of my head and completely untested).
You might also want to check
   
http://scons.tigris.org/ds/viewMessage.do?dsForumId=1272&dsMessageId=955448
for reference.
Hope this helps you somehow...there might be a more elegant way, but it 
should work as described above.
Best regards,
Dirk
On 15.08.2012 22:43, Justin Tulloss wrote:
> Hello,
>
> This is a newbie question, so hopefully it's straightforward to 
> answer. I'm using scons to build my web frontend. I have a list of 
> .less files that I want to compile to .css files. These less files are 
> listed in a manifest file. I have a scanner that reads the manifest 
> file and returns the files listed. As I understand it, this makes them 
> implicit dependencies of the target. How do I indicate that I want my 
> .less builder to run against all of these source files?
>
> Here's the important bits of code for context:
>
> def build_target(target, source, env):
>   # unimportant stuff
>   return None
>
> def scan_target(node, env, path):
>   js_env = environment.Environment('rdio')
>   # This actually finds all the less files.
>   files = js_env.less_app_bundle()
>   return files
>
> # I want this to find the less files given a .json file (which is the 
> manifest)
> target_scanner = Scanner(
>   name='LessScan',
>   function=scan_target,
>   skeys=['.json'])
>
> target_builder = Builder(
>   action=build_target,
>   source_scanner=target_scanner)
>
> less_builder = Builder(
>   generator=lambda source, target, env, for_signature: \
>     '%s --include-path=%s -x $SOURCE > $TARGET' % (lessc, web_root),
>   suffix='.css',
>   source_scanner=target_scanner)
>
> env = Environment()
> env.Append(BUILDERS={
>   'Target': target_builder,
>   'Less': less_builder,
> })
>
> env.Target(['targets/rdio.json'])
>
> What I want is the results of the scan_target function to be read one 
> by one into the less_builder function. How would I do something like that?
>
> Thanks a lot for your help!
>
> Justin
>
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> http://four.pairlist.net/mailman/listinfo/scons-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://four.pairlist.net/pipermail/scons-users/attachments/20120816/502725b4/attachment.html>
    
    
More information about the Scons-users
mailing list