[Scons-users] Testing ninja build generator

Julien Pommier pommier at pianoteq.com
Fri Jun 6 12:42:15 EDT 2025



> There's another layer of "quoting problem" here, beyond the URL-quoting that I'm trying to understand.
> 
> As written, the rule in build.ninja looks like:
> 
> build run$ me.sh: TEMPLATE | .ninja/scons_daemon_dirty
> 
> I'm assuming the '$' is some kind of space-escape syntax for ninja. This fails with
> 
> scons: *** Do not know how to make File target `run'
> 
> so we ended up seeing the target back in SCons as being just "run". Adding a layer of quotes doesn't work, as those are carefully preserved and the target names don't match.
> 
> Not familiar with this code beyond the fiddling I did in Utils.py, hopefully someone else has some ideas, else we'll have to dig into it.

It seems the quoting need to be applied to the line 234 in ninja_scons_daemon.py. Using:

                    input_command = "build \"" + building_node + "\"\n"

instead of 
                   input_command = "build " + building_node + "\n"

makes it work for my test-case 

(this is in addition of the url-quoting to add to the conn.request("GET", "/?build=" + sys.argv[3]) of ninja_deamon_build.py:80)
 
With these two fixes, the ‘run me.sh’ target is correctly built by ninja & scons.


More information about the Scons-users mailing list