[Scons-users] [c++] Automatically choosing sources for linking

Viktor Dick viktordick86 at gmail.com
Sat Mar 1 04:37:45 EST 2014


Hi,
thanks for the help. Somehow the scanner returns an empty list, which
seems to be due to the fact that the files are not in the same folder
but in some folder that is found in env["CPPPATH"]. How do I get the
scanner to recognize these settings? A minimal example follows:

=== a.cpp ===
#include "b.h"

=== dir/b.h ===

=== SConstruct ===
import SCons.Scanner
env = Environment(CPPPATH=['.', "dir"])
scanner = SCons.Scanner.C.SConsCPPScannerWrapper("prescanner",".")
f = env.File("a.cpp")
print scanner(f, env)

If instead b.h is found in the same folder as a.cpp, it works. I also
tried to change the second argument of SConsCPPScannerWrapper() to "dir"
since I could not find any helpful documentation about this argument,
but it still didn't work.

Does anyone have any idea how to do a full search that also respects
CPPPATH settings (and, for that matter VariandDir settings)?

Regards,
Viktor




On 2014-02-28 20:10, Dirk Bächle wrote:

> On 28.02.2014 17:48, Viktor Dick wrote:

>> Hi,

>> thanks for the quick answer. One problem with this solution is that

>> there are compiler flags (mostly in src/define.h) that, among other

>> things, control the inclusion of files, so the parsing would be more

>> complicated that just grepping for #include (it's not even only #ifdef

>> or #ifndef, sometimes it is "#if defined ... and #defined ..." or

>> something alike). Delegating this task to gcc -MM (the dependency

>> generator of gcc), which should be able to ignore the rest of the file

>> and only look at the relevant parts, was quite slow, so I am not sure if

>> this will work. I even managed to reduce the number of times that gcc is

>> called to about 3 or 4 in order to reduce overhead from the call itself,

>> but then the argument list became long and it still took a lot of time.

>> Is it maybe possible to call the scons dependency scanner so it can find

>> the correct includes, respecting compiler switches?

>

> I have added a first draft of a recipe for this to our Wiki at

>

> http://www.scons.org/wiki/ExplicitlyCallCppScanner

>

> . Please check it out, and see if you can take it from there.

>

> Best regards,

>

> Dirk

>

> _______________________________________________

> Scons-users mailing list

> Scons-users at scons.org

> http://four.pairlist.net/mailman/listinfo/scons-users

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0xE3CD1E09.asc
Type: application/pgp-keys
Size: 34881 bytes
Desc: not available
Url : http://four.pairlist.net/pipermail/scons-users/attachments/20140301/2ffb596d/attachment-0001.key
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 555 bytes
Desc: OpenPGP digital signature
Url : http://four.pairlist.net/pipermail/scons-users/attachments/20140301/2ffb596d/attachment-0001.pgp


More information about the Scons-users mailing list