[Scons-users] adding text to compile line

Mats Wichmann mats at wichmann.us
Fri Feb 2 11:59:30 EST 2024


On 2/2/24 01:25, daggs via Scons-users wrote:
> Greetings Bill,
> I'll try it, just for the heck of it but it isn't a valid solution as I 
> cannot ask multiple devs to make that change in their scons.
> the question is, can I remove them using the std python code?
> one of the main features we use is take the compile line and run it 
> manually so we don't need to run the entire build just to test one line.
> these "addons" will wreck havoc in bash

You don't have to patch scons, you can try it this way:

In the top dir of your project, create a site_scons directory, and put a 
site_init.py into it containing this:

# monkeypatch strfunction() to print a prefix 


import SCons.Action
from SCons.Subst import SUBST_CMD

def my_strfunction(self, target, source, env, executor=None, overrides: 
bool = False) -> str:
     if self.cmdstr is None:
         return None
     if self.cmdstr is not SCons.Action._null:
         if executor:
             c = env.subst(self.cmdstr, SUBST_CMD, executor=executor, 
overrides=overrides)
         else:
             c = env.subst(self.cmdstr, SUBST_CMD, target, source, 
overrides=overrides)
         if c:
             return c
     cmd_list, ignore, silent = self.process(target, source, env, 
executor, overrides=overrides)
     if silent:
         return ''
     return "PREFIX: " + SCons.Action._string_from_cmd_list(cmd_list[0])

SCons.Action.CommandAction.strfunction = my_strfunction





More information about the Scons-users mailing list