[Scons-users] FW: Issue: using Replace to replace ENV PATH

Tony Peter Long tony.peterlong at nxp.com
Tue Jan 29 01:59:40 EST 2019


Sorry. Let me try this again.

From: Tony Peter Long
Sent: Monday, January 28, 2019 14:02
To: 'scons-users at scons.org' <scons-users at scons.org>
Subject: Issue: using Replace to replace ENV PATH

Hello all.

I am a new SCons user as well as new to Open Source development in general, so please forgive me if I'm missing some etiquette with this mail, but I have a minor issue when using the Replace method to replace ENV PATH as follows:

PATH = {'PATH' : ['C:/cygwin/bin']}
env = Environment()
env.Replace(ENV = PATH)
env.Replace(CXX = 'g++')
env.Replace(CC = 'gcc')
print "PATH = ", env['ENV']
print "CXX = ", env['CXX']
print "CC = ", env['CC']
env.Program('helloworld.cxx')
gives:
scons: warning: No version of Visual Studio compiler found - C/C++ compilers most likely not set correctly
File "D:\tony\SConstruct", line 2, in <module>
PATH =  {'PATH': ['C:/cygwin/bin']}
CXX =  g++
CC =  gcc

scons: warning: No version of Visual Studio compiler found - C/C++ compilers most likely not set correctly
File "C:\Python27\Scripts\scons.py", line 204, in <module>
g++ /Fohelloworld.obj /c helloworld.cxx /TP /nologo
g++: error: /Fohelloworld.obj: No such file or directory
g++: error: /c: No such file or directory
g++: error: /TP: No such file or directory
g++: error: /nologo: No such file or directory
scons: *** [helloworld.obj] Error 1

Whereas:
PATH = {'PATH' : ['C:/cygwin/bin']}
env = Environment(ENV = PATH)
# env.Replace()
env.Replace(CXX = 'g++')
env.Replace(CC = 'gcc')
print "PATH = ", env['ENV']
print "CXX = ", env['CXX']
print "CC = ", env['CC']
env.Program('helloworld.cxx')
gives:
scons: Reading SConscript files ...
PATH =  {'PATH': ['C:/cygwin/bin']}
CXX =  g++
CC =  gcc
scons: done reading SConscript files.
scons: Building targets ...

scons: warning: No version of Visual Studio compiler found - C/C++ compilers most likely not set correctly
File "C:\Python27\Scripts\scons.py", line 204, in <module>
g++ -o helloworld.o -c helloworld.cxx
g++ -o helloworld.exe helloworld.o
scons: done building targets.

I'm not particularly tied to the first implementation, so using the second method suits me just fine. I was just wondering if this is intended, and if so, why?

Regards,
Tony Long.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20190129/4152b378/attachment.html>


More information about the Scons-users mailing list