[Scons-users] Windows resource files and variant builds

Tom Tanner trtanner at btinternet.com
Tue Mar 17 16:42:18 EDT 2015


It looks like I can use /i instead.

env.AppendUnique(RCFLAGS=[ '/dSCONS', '/i"%s"' % other.abspath ])

works a treat. I need the /d so as not to break the other build system. 
but that's a lot nicer.

On 17/03/20
15 20:04, Tom Tanner wrote:
> I don't think 'rc' understands that. I can have a try.
>
> On 17/03/2015 17:43, Bill Deegan wrote:
>> Tom,
>>
>> Can you use LINKPATH or such to point to the dll and then not have to 
>> have the path in the file at all?
>>
>> -Bill
>>
>> On Tue, Mar 17, 2015 at 10:25 AM, Tom Tanner <trtanner at btinternet.com 
>> <mailto:trtanner at btinternet.com>> wrote:
>>
>>     That's great, thanks.
>>
>>     Still horrible, mind you, but not so horrible as it might be!
>>
>>
>>     On 17/03/2015 16:48, Bill Deegan wrote:
>>>     Does other.path work?
>>>     -Bill
>>>
>>>     On Tue, Mar 17, 2015 at 8:38 AM, Tom Tanner
>>>     <trtanner at btinternet.com <mailto:trtanner at btinternet.com>> wrote:
>>>
>>>         The problem is that the .res file contains a path to a .dll,
>>>         which when the resource is compiled, causes rc to attempt to
>>>         read the dll. And the dll in question is part of the build
>>>         of this project.
>>>
>>>         And with a variant dir, you're doing the build from above
>>>         where the files get stored, so ..\\..\\etc points to outer
>>>         space.
>>>
>>>         In order to get the rc file to be compiled, you need to
>>>         specify something like
>>>
>>>         IDR_LOADER_DLL         BINARY   MOVEABLE PURE    "<variant
>>>         dir>\\otherModule\\otherModule.dll"
>>>
>>>         which I have at eventually got round by doing
>>>
>>>         IDR_LOADER_DLL         BINARY   MOVEABLE PURE    DLL_TO_USE
>>>
>>>         and setting  RCFLAGS like this
>>>
>>>         other=env.File(os.path.join('..','..','otherModule','otherModule.dll'))
>>>
>>>         env.AppendUnique(RCFLAGS=[
>>>         '-DDLL_TO_USE="\\"%s\\""'%other.abspath ])
>>>
>>>         and it needs all those double quotes and backslashes! But
>>>         it'd be nice if I could get a 'path relative to where the
>>>         SConstruct file is' somehow as that .abspath works out as
>>>         something depressingly long.
>>>
>>>
>>>         On 17/03/2015 15:22, Bill Deegan wrote:
>>>
>>>             Assuming ../../otherModule is your variantdir, then
>>>             there's no need to have the path.
>>>             As long as you specify the .res file as a source to the
>>>             linker, it should do the right thing.
>>>
>>>             -Bill
>>>
>>>             On Tue, Mar 17, 2015 at 6:43 AM, Tom Tanner
>>>             <trtanner at btinternet.com
>>>             <mailto:trtanner at btinternet.com>
>>>             <mailto:trtanner at btinternet.com
>>>             <mailto:trtanner at btinternet.com>>> wrote:
>>>
>>>
>>>                 I've just been putting an scons build into a windows
>>>             QT project
>>>                 and I ran into an interesting thing on a windows
>>>                 resource file when using variant dirs
>>>
>>>                 The resource file contains this:
>>>
>>>                 #ifdef _DEBUG
>>>                 IDR_LOADER_DLL         BINARY  MOVEABLE  PURE
>>>             "..\\..\\otherModule\\debug\\otherModule.dll"
>>>
>>>                 #else  //  _DEBUG
>>>
>>>                 IDR_LOADER_DLL         BINARY  MOVEABLE  PURE
>>>             "..\\..\\otherModule\\release\\otherModule.dll"
>>>
>>>                 #endif  //  _DEBUG
>>>
>>>                 and I'm rather at a lose at what to put in there.
>>>             Clearly I can
>>>                 get rid of the 'debug' and 'release' bits, but
>>>                 it seems like I want to put the <variantdir>\\ in
>>>             there somehow.
>>>                 And I'm somewhere in an SConscript file which
>>>                 doesn't know what they are.
>>>
>>>                 The other thing I'm having a problem with is that
>>>             presumably the
>>>                 generated file will depend on the dll. Now, there's
>>>                 a build for the dll, but if I put
>>>
>>>             env.Depends('my.res','..\\..\\otherModule\\otherModule.dll')
>>>
>>>                 I get:
>>>
>>>                 Explicit dependency
>>>             `source\otherModule\\otherModule.dll' not found
>>>
>>>                 But that module is built by another SConscript in
>>>             the same build.
>>>                 But obviously it's not in 'source'
>>>
>>>             _______________________________________________
>>>                 Scons-users mailing list
>>>             Scons-users at scons.org <mailto:Scons-users at scons.org>
>>>             <mailto:Scons-users at scons.org
>>>             <mailto:Scons-users at scons.org>>
>>>             https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>
>>>
>>>
>>>
>>>             _______________________________________________
>>>             Scons-users mailing list
>>>             Scons-users at scons.org <mailto:Scons-users at scons.org>
>>>             https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>
>>>
>>>         _______________________________________________
>>>         Scons-users mailing list
>>>         Scons-users at scons.org <mailto:Scons-users at scons.org>
>>>         https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>
>>>
>>>
>>>
>>>     _______________________________________________
>>>     Scons-users mailing list
>>>     Scons-users at scons.org  <mailto:Scons-users at scons.org>
>>>     https://pairlist4.pair.net/mailman/listinfo/scons-users
>>
>>
>>     _______________________________________________
>>     Scons-users mailing list
>>     Scons-users at scons.org <mailto: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
>
>
>
> _______________________________________________
> 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/20150317/64456432/attachment.html>


More information about the Scons-users mailing list