The TEMPLATE rule doesn't care about your `cmd` value:
rule TEMPLATE command = $SCONS_INVOCATION $out description = Rendering $out pool = scons_pool restat = 1
But if you have a stanza like this in your SCons:
env.Command( target=[ 'feature_flag_test.idl', ], source=[ '#buildscripts/cheetah_source_generator.py', 'feature_flag_test.idl.tpl', '$BUILD_DIR/mongo/util/version/releases.yml', ], action=[ '$PYTHON ${SOURCES[0]} -o ${TARGETS[0]} ${SOURCES[1]} ${SOURCES[2]} ${MONGO_VERSION}', ], # Ensure that that SCons is used to produce this file rather than Ninja, to avoid spurious # dependency cycles due to how we manage generated sources with Ninja. NINJA_TEMPLATE=True, )
It ends up in the `cmd` stanza of the sole invocation of the `TEMPLATE` rule:
build build/aib_make_archive.py build/cached/mongo/config.h $ build/cached/mongo/idl/feature_flag_test.idl build/cached/mongo/util/version_constants.h $ build/cached/resmoke.ini build/cached/third_party/third_party_shim.cpp $ build/cached/third_party/wiredtiger/wiredtiger.h: TEMPLATE src/mongo/config.h.in $ buildscripts/cheetah_source_generator.py src/mongo/idl/feature_flag_test.idl.tpl $ src/mongo/util/version/releases.yml src/mongo/util/version_constants.h.in $ src/third_party/wiredtiger/src/include/wiredtiger.in | $ buildscripts/cheetah_source_generator.py src/mongo/util/version/releases.yml $ src/mongo/idl/feature_flag_test.idl.tpl @install_dir@$ install//usr/locala/bin cmd = /Users/acm/.virtualenvs/mongo/bin/python buildscripts/cheetah_source_generator.py -o $ build/cached/mongo/idl/feature_flag_test.idl src/mongo/idl/feature_flag_test.idl.tpl $ src/mongo/util/version/releases.yml 5.1.0-alpha-1746-g1cf0b1f env = export PATH='/usr/local/bin:/opt/bin:/bin:/usr/bin';export $ PATHOSX='/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin';
This is harmless, since TEMPLATE isn't going to honor it, but it is confusing when reading the generated ninja file and is probably something we should avoid doing.