On Sat, Sep 1, 2012 at 11:27 PM, Kenny, Jason L <[email protected]> wrote:
> We gave Steve the patch to this issue.. As I recall he did not take it 100%
> and changed it. I have updated that version here:
>
> http://parts.tigris.org/source/browse/*checkout*/parts/trunk/parts/parts/mappers.py?revision=449&content-type=text%2Fplain
>
> end of the file line 694-800
At least just from looking at the code, I don't see how it quotes
cmd[0] or does anything specifically to prevent this problem.
> As I recall Steve tweak the actions to help make it smarter ( I believe it
> was the addition of a print action value), to help separate the value the
> temp file will call from the case when it need to create the temp file
Yes, that part is already in SCons.
> I forget the tweak we made, but it fixed the generation issue we found in our
> builds. I believe the issue is fixed with left overs lnk files in the temp
> directory. We use TempFile heavily in Part, or tweak the mslink and msvc tool
> use TEMPFILEMUNGE to deal with CC CXX and LINK commands as we found cases in
> our build in which the command line of these go way to long.
>
> The issue in 1705 I have not seen in our usages of it with scon 2.1 or 2.2
Can you try the simple test case from the bug report? I modified it a
little bit to run on modern SCons versions. This test fails for me on
the trunk. The fact that env['AR'] has spaces is what makes it fail.
=====
# Test MSVC tempfile handling
import os.path
d = os.path.join( "xxxxx", "yyyyyy", "zzzzzz", "aaaaaa" )
try:
os.makedirs( d )
except OSError, e:
pass
# Create a bunch of source files in xxxxx
numSources = 100
sources = []
for x in range(numSources):
source = os.path.join( d, str(x)+ ".cpp" )
sources += [ source ]
print "Making source: ", source
open( source, 'w' ).close()
env = Environment()
# Path to alternative build tools:
env['AR'] = env.WhereIs("lib.exe")
print "Using %s for AR"%env['AR']
# If issue #1705 is still active, this will fail,
# saying 'C:\Program' is not recognized as an internal or external command
# because it doesn't get quoted properly.
env.StaticLibrary( os.path.join( d, "foo.lib" ), sources )
=====
--
Gary
_______________________________________________
Scons-dev mailing list
[email protected]
http://two.pairlist.net/mailman/listinfo/scons-dev