[Scons-users] scons and windows

Bill Deegan bill at baddogconsulting.com
Wed Mar 11 14:12:18 EDT 2015


Tom,

That seems reasonable.
Are there any other flags which cause the generation of the PDB file?
Is this version specific? (MS VC version that is)

Care to submit a pull request with a test as well?

-Bill

On Wed, Mar 11, 2015 at 1:45 AM, Tom Tanner (BLOOMBERG/ LONDON) <
ttanner2 at bloomberg.net> wrote:

> I'm setting up an scons build for a windows project with QT (using Dirk's
> QT stuff) which produces a bunch of .DLL, .lib, and .exe targets. A minimal
> example for the 2nd problem will take some time, but for the first, I want
> to do 'debug' and 'release' builds. The first should produce pdbs and the
> 2nd shouldn't.
>
> Anyway, currently this is what I do for the debug config on the SConstruct
>
> env['LINKFLAGS'] += [ '/DEBUG' ]
> env['CPPFLAGS'] += [ '/Z7' ]
>
> and then visual studio 10 generates *automatically* a .pdb with the same
> name as the dll/exe for every dll and exe I build. And I get debugging
> information for the .lib files as well.
>
> But, as far as I understand it, the current version of SCons requires me
> to do (and this syntax is probably wrong)
>
> env.Program('fred', Glob('*.cpp'), LIBS = stuff, PDB = 'fred' if config ==
> 'debug' else None)
>
> for every dll and exe in the project. And I still need to set CPPFLAGS
> globally so that my .libs get the debugging information built into them
> (again, as I understand it).
>
> This seems a waste of effort - firstly I need to enter the target name
> twice and secondly I need to have the same boilerplate for every executable
> / dll that gets build.
>
> I guess a simple fix for this for my project would be to wrap the linker
> emitter with a test to see if '/DEBUG' is in LINKFLAGS and then generate an
> extra target, but I think there's a more general requirement here.
>
>
> From: bill at baddogconsulting.com At: Mar 10 2015 02:51:03
> To: Tom Tanner (BLOOMBERG/ LONDON) <ttanner2 at bloomberg.net>,
> scons-users at scons.org
> Subject: Re: [Scons-users] scons and windows
>
> Tom,
>
> In general, I'ved used the PDB as an argument to the builder so:
>
> env.Program('tartget',[sources...], PDB='somefile.pdb')
>
> If you post a sample of your SConstruct we can see what's happening, even
> better a minimal example.
>
> -Bill
>
> On Mon, Mar 9, 2015 at 4:21 AM, Tom Tanner (BLOOMBERG/ LONDON) <
> ttanner2 at bloomberg.net> wrote:
>
>> I started playing around with scons / qt4 on windows at home last week
>> and have a couple of questions / oddities / potential issues
>>
>> 1) There's an env['PDB'] which according to the documentation you set to
>> the name of the pdb file the linker should generate. Given that in the main
>> you'd want it to be the same as the executable / DLL, couldn't you just set
>> it to 'True'?. This'd be a lot of help in the project I'm trying to create
>> an scons replacement build for as I'd just need to set this once in the
>> SConstruct file to generate these for everything, rather than in each
>> SConscript file. My experience with visual C++ 10 is if you link with
>> /DEBUG you get a .pdb file with the expected name, without having to
>> specify anything else to the linker.
>>
>> 2) For reasons that are beyond me, scons appears to be running the linker
>> *twice* when it generates an executable. That is to say the output is along
>> the lines of
>> using temporary file xxxx for command
>> link /OUT:thingie.exe <enormous command line>
>> link /OUT:thingie.exe @xxxx
>> using temporary file yyyy for command
>> link /OUT:thingie.exe <enormous command line>
>> link /OUT:thingie.exe @yyyy
>> where the entire command line is identical.
>>
>> Haven't finished the work of adding it yet, but it's already showing
>> benefits. Not the least of which is I can open a subproject by itself, and
>> just build that, which is completely impossible with qmake.
>>
>> _______________________________________________
>> Scons-users mailing list
>> Scons-users at scons.org
>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>
>>
>
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20150311/9fef0b12/attachment-0001.html>


More information about the Scons-users mailing list