[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