[Scons-users] Replace env['BUILDERS']['Program']	and	env.Configure
    Luc Bourhis 
    luc_j_bourhis at mac.com
       
    Fri Aug 24 04:52:54 EDT 2012
    
    
  
Hi Bill,
thanks for spending time to give me good advices.
>> I am dealing with an existing build system creating many an executable with env.Program(...) and many a shared library with env.SharedLibrary(...). As part of a recent changeset, I have a piece of code that I have built into a static library libofmine.a and a shared library libofmine.so. Then I wish that every executable is linked with libofmine.a whereas every shared library is linked with libofmine.so.
> 
> Sounds like you could get into trouble if the programs link with any of those shared libraries..
I have that under control as those shared libraries are Boost Python extensions whereas the executables have nothing to do with Python. 
>>> You could use a pseudo-builder
>> 
>> Indeed but that would require changing all the env.Program(...) to env.MyProgram(...) and forcing all my collaborators to switch to that. I preferred to try a more transparent approach.
> 
> I'm always wary of any "magic which happens behind the curtain" type solutions.
> Eventually there'll be an issue and then debugging it is a much bigger cost than a clean solution up front. (IHMO)
Generally speaking I fully agree with you and I had quite a dilemma here. 
>> It seemed impossible to modify the environment by Append'ing a library in such a manner that env.Program would pick the static version whereas env.SharedLibrary would pick the shared version. If there is a way to do that, then I would adopt it immediately!
> 
> If you create the shared and static libraries into different directories, then it should be fairly easy.
I am afraid I can't imagine how to do that still.
Best wishes,
Luc
    
    
More information about the Scons-users
mailing list