[Scons-users] Confused on VariantDir and build outputs on large project

Bill Deegan bill at baddogconsulting.com
Mon Nov 25 01:18:06 EST 2013


Carl,

Did you try something like this:
http://scons.org/doc/production/HTML/scons-user/c3504.html

-Bill


On Sun, Nov 24, 2013 at 6:06 PM, Carl Cerecke
<carl.cerecke at compacsort.com>wrote:


> Hi,

>

> I'm porting a large, complex C++ program from MSVC to Linux. I've chosen

> scons for the build system, but I've come across a bit of a showstopper (at

> least, I can't figure out what the right solution is. I'm pretty sure there

> is one) when it comes to build outputs and intermediate files.

>

> I'm trying to keep the Linux build system reasonably similar to the Visual

> Studio build system to make it an easier transition for the other

> developers.

>

> We have, for example, Program P1 and P2, and library A, B, and C like so:

>

> /src/A/

> /src/B/

> /src/C/

> /src/P1/

> /src/P2/

>

> Let's say P1 requires A, which requires B, which requires C.

> P2 requires B, which requires C.

>

> So P1 and P2 should each have a SConstruct file. And A, B, and C will have

> a SConscript file.

>

> Here's the tricky part:

> I want the intermediate files and build results to be in dirs like so:

> /build/A/debug

> /build/B/debug

> /build/C/debug

> /build/P1/debug

> /build/P2/debug

> (Also corresponding /build/<X>/release hierarchy)

>

> So, assuming empty build directories:

> "scons" in /src/P2/ will build C, then B, then P2 in debug mode

> "scons" in /src/P1/ will build A, then P1 in debug mode (C and B were

> already built by prev scons command)

>

> Building in "release" should build everything required:

>

> "scons --release" in /src/P2/ will build C, then B, then P2 in release

> mode.

>

> Building again in debug should not build anything, because the

> intermediate files from the debug build are still present:

>

> "scons" in /src/P2/ will not have anything to do.

>

> From the documentation, and my own experimentation, I cannot figure out

> how to wield VariantDir (or variant_dir) to do what I want.

>

> If this a reasonable thing to want to do, how do I do it? If it isn't the

> right way, what is a Better Way?

>

> Thanks,

> Carl

> --

> Carl Cerecke

> SENIOR SOFTWARE DEVELOPER

>

>

>

> *M:* +64 21 205 0239

> *F:* +64 9 634 4491

> *Skype:* carl-compac

>

>

>

> _______________________________________________

> Scons-users mailing list

> Scons-users at scons.org

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

>

>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://four.pairlist.net/pipermail/scons-users/attachments/20131124/9f4ad3c6/attachment.html


More information about the Scons-users mailing list