Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

(in addition to possible environment-handling bugs mentioned above).  In our situation (using variant build directories so that builds of different types, made from the same source, can co-exist; using the --interactive option so that developers don't have to wait a minimum of several minutes for any sort of rebuild, no matter how trivial the change to source) SCons just doesn't get it right.  It doesn't seem to keep track of the connection between a source file and the copy of it in the build directory.  I've sent a bug report (months ago, plus a reminder a few days ago) and the SCons developers have acknowledged that it is a bug, but nothing has happened since.  It's just not high on their list of priorities.  They're putting a lot of effort into getting builds to work on Windows under a wide variety of circumstances, but I suspect they don't often encounter people who do their primary development on Windows; else bugs involving --interactive would have been fixed long ago. 

What Might Help

Bugs in SCons itself

I don't know how to put more pressure on the SCons folk to fix their problems (particularly the ones associated with --interactive; they're actively working on environment-related problems).  Since the problems I've seen a) don't exist on Linux b) don't exist on Windows when you invoke SCons fresh for each operation I think it's likely the fix is not that complicated and probably doesn't involve a lot of code. Maybe we could find it and submit it as a patch. But anyone who hopes to find it would have to spend some time familiarizing him/herself with a good bit of SCons.  It would speed things up if such a volunteer already was quite comfortable with python.

Linking problems

If I knew reliably what CMT was doing (e.g. literal compile and link commands) in all circumstances where it succeeds and SCons doesn't that would be a big help.  It's not so difficult to get SCons to add particular options or libraries once I know what they should be.  But I'm not at all adept at digging the information out of CMT.

Other problems with externals

Mostly this just comes down to duplicating whatever obscure magic is in the CMT requirements file for that external or, in some cases, it might have to do with patterns in the *Policy packages.Whoever handles the external for CMT probably has the special knowledge needed to get it to go on SCons.

Environment set-up

This one is very messy and I have no good ideas how to break off a discrete piece of it for someone else to work on. If there is anyone willing to put some serious time and effort into learning about the problem and working on a solution, I'd welcome a partner.