Hi all,
after all those years, I found that my CVS write access is
still active.
So I went and updated the SCons build system.
It now works nicely again with the last few SCons versions.
Unfortunately, SCons still reqires Python 2.7, I'm really
hoping for it to support Python 3 soon.
The compile results are now placed in a seperate "scbuild"
directory tree. Each target platform gets its own subbranch
in there.
Target configurations now differentiate between 32 and 46 bit
systems. I had to rename the platform config files for that.
Currently the build is autmatically set to the architecture
of the host platform.
It might be nice to be able to cross-compile at least for the
companion bit-architecture of the same platform, which should be
possible to do.
On the other hand, I'm not sure if its really worth the effort.
How many people are still running Radiance on 32 bit systems?
But at least the possibility should be kept open, so we won't
need another redesign when the first 128 bit systems come out in
a few years...
On linux, everything builds without a hitch. We get the same
executables as with makeall, and then some.
It's also much faster than ten years ago!
On Windows, everything without third-party dependencies builds
fine with the current VC 2015 "Community" compiler.
I haven't yet gotten around to fetching the Windows dev packages
of Tifflib and QT, so those parts need some more work.
X11 is probably not worth the hassle (though there might be ways).
The tifflib included with the NREL binaries didn't work, which
means they used a different compiler. In fact, they must be using
gcc on Windows, because I found (and fixed) some non-standard
allocation magic in src/cv/bsdftrans.cpp that only gcc accepts.
I haven't looked at qtrvu very closely. But even on a cursory
glance it looks straightforward to build. This should not be a
problem for SCons and MSCC, once all the dependencies are in place.
Ah... can we standardize on a file name extension for C++ files in
Radiance? Right now we have both *.cxx and *.cpp.
With the current MS compiler on 64 bit, there are a huge number
of coercion warnings all throughout the code. Most of those are
probably harmless, even if annoying.
There are two files tough, where the warning says that "the
result of a 32 bit shift operation was coerced to 64 bit. Was
there a 64 bit shift intended?"
src/common/bmpfile.c
src/util/rttree_reduce.c
I can't really tell, so I've just marked the lines with an
"XXX" comment for review.
If anyone wants to give the "new" SCons a try on any platform,
go ahead!
Please tell me about your results, particularly about any
changes to the config files you might find necessary.
Instructions are in ray/INSTALL.scons and ray/platform/README.
All changes are in CVS, the HEAD package should include those
changes in a day or so.
have fun!
-schorsch
···
--
Georg Mischler -- simulations developer -- schorsch at schorsch com
+schorsch.com+ -- lighting design tools -- http://www.schorsch.com/