[Scons-users] compiler detection

Philipp Kraus philipp.kraus at flashpixx.de
Mon Oct 29 12:42:39 EDT 2012


On 2012-10-29 02:51:40 +0100, William Deegan said:


> Phil,

> On Oct 28, 2012, at 9:22 AM, Kraus Philipp <philipp.kraus at flashpixx.de> wrote:

>

> Am 28.10.2012 um 16:50 schrieb William Deegan:

> Phil,

>

> On Oct 28, 2012, at 7:35 AM, Philipp Kraus <philipp.kraus at flashpixx.de> wrote:

>

> On 2012-10-25 21:09:30 +0200, William Deegan said:

>

> Phil,

> On Oct 25, 2012, at 12:46 AM, Kraus Philipp <philipp.kraus at flashpixx.de> wrote:

> Hello,

> I'm using on Windows 7 Visual Studio and MinGW Shell with Gcc / G++. If

> I run Scons on the VS command line, Scons uses on env.Program the VS

> compiler (cl.exe), on the other hand if I run Scons from the MinGW

> shell, it uses also the cl.exe, but not the g++.exe. I can now

> overwrite the CXX / CC flag in the env, but why does Scons uses always

> the Visual Studio compiler? The PATH variable under MinGW shell does

> not have any path information to Visual Studio. IMHO I would like to

> detect and use under VS command line the VS compiler & linker (cl.exe &

> link.exe) and under MinGW shell the gcc / g++.

> On win32 there's a  list (in order) of the compilers to search for.

> If you want to detect the platform and change the preferences, you can

> list the tools (mingw…) when you initialize the Environment() you are

> using.

>

> Do you have got a code excerpt how to change this list?

>

> Go read the man page.

> http://www.scons.org/doc/production/HTML/scons-man.html  (search for tool=)

>

> Basically

> Environment(tool=['mytool1','mytool2',…

>

> You can see the list of tools in the man page as well.

>

>

> I know the tool option, but how I can change the compiler search list?

> Should I rewrite the full tool list in the dependcy of my environment?

>

> tool= overrides the default tool initialization

> so

> env=Environment(tool=[])

> Initializes no tools, and then you could also add them via:

> env.Tool('gcc')..


My mistake was, that I does not have set the tool to []. I'm using now
on MinGW env.Tool("mingw") and otherwise env.Tool("default"):
That works fine.

But I have got on MinGW a "shell" problem, because I use 2 env.Command
lines, and this commands are always run on cmd.exe, but MinGW uses by
default /bin/sh
I try to setup env["SHELL"] = "/bin/sh" and the PATH variable in my env
object, but by the env.Command line I get always that /bin/sh is not
found (and the command
creates an error).

Phil




More information about the Scons-users mailing list