I talked to Jesterking and he may switch this to a more global
solution later. I figured in the meantime its ok to commit this
and consider the issue resolved.
Kent
Restoring the "evil src splitting hack" for scons+mingw systems. By default, it is not used, but if your system is choking when trying to link src, then add BF_SPLIT_SRC=1 to your user-config.py to use this hack.
* stupid misplacement of declaration
* replacing fmodf with fmod (fmodf not available with MSVC7.1 when compiling C-code)
* appending CXXFLAGS to CCFLAGS in tools/Blender.py to avoid linking errors with runtime library (/MT not set)
- jesterKing, could you please check if that's ok?
settting WITHOUT_BF_INSTALL='true' will disable
the copying to INSTALL_DIR
you can use that in your user-config.py or commandline
slipping in minor cleaning for Os X builds
* Finally cleaned up the NSIS installer creation process
This is now a proper action and command, with simple printout
The 'nsis' target (only on Windows) now properly depends on
all the build process, and will be done as very last.
* Make LZMA (Solid) default compressor for installer (= the best)
FINALLY! With this commit command-length problems are History. Thanks go to xuru from #scons for giving the nice pointer.
src is now again one lib, and further libsplitting should be rather unnecessary, unless we somehow reach the 37K limit (for internally used CreateProcess, by subprocess module)
CXXFLAGS defaults to CCFLAGS which was causing duplicated or
extra compile flags being set for g++. Fix is to use
env.Replace() rather than .Append() the first time we
set CXXFLAGS in the build environment.
To use:
Make sure NSIS is in your %PATH% and type 'scons nsis'
It doesn't currently compile blender first, so make sure you do a
normal 'scons' before this.
* Add WITH_BF_YAFRAY, which per default is 'true', so no visible changes for developers (and users).
Set WITH_BF_YAFRAY to 'false', and you'll save some major compile time :) Also handy if you're strapped for memory and compilation fails on yafray compilation due
to this.
- this commit also has a few whitespace changes and
- made BF_NO_ELBEEM a proper BoolOption. This will be renamed to WITH_BF_ELBEEM in the near future...
* removed unused options BF_VERSE_LIBPATH, BF_VERSE, BF_VERSE_LIBS, since they are not used at all.
* some whitespace mods
There should be no more issues with "libverse.lib" not being found (or anything like
that).
- this patch adds verse support for SCons, which can be enabled by
giving WITH_BF_VERSE=1, ie. on command-line
- this patch also adds a custom lib dir possibility. From the patch description:
"To set a custom ../lib dir, put LCGDIR="path to lib dir, including the platform folder name!" in your user-config.py."
* Fixed win32-vc-config.py so that it links to the proper library. Reported by Brandano.
of the fluidsim can now be disabled with the
flag: BF_NO_ELBEEM='true', e.g. for irix systems.
(The number of ifdefs from the original
patch was reduced, and the defines are now
only necessary when elbeem is switched off.)
- particle generation option is available again
* Applied patch #4012 by Joseph Eagar. The patch provides a way to quickly assign a list
of libraries to build with debug symbols. Usage:
scons BF_QUICKDEBUG=src,bf_blenkernel,bf_blenlib
* These changes bring cross-compiling Blender for Windows on Linux one step
closer to reality. The 'biggest' change is in makesdna SConscript to make
sure a linux native makesdna is built, that can be run, too. Next to that
proper checks for env['OURPLATFORM']=='linuxcross' are added in various
places.
Switch change in pluginapi.c was necessary, and AFAIK it should work like
that also on WIN32, if not, slap me.
Note: everything *compiles* now nicely, it is just that the final *linking*
doesn't work (yet). Anyone who fixes this will be the
hero of cross-compilers :)
+ SCons support for pthreads-win32. Library will be committed shortly into
lib/windows, so be sure to check commit list and update that as well
when the pthread lib is available.
* when WITH_BF_STATICOPENGL=1 on Linux Blender will be statically linked
against GL libraries. NOTE: I used values that worked on my machine -
platform managers and people who have better knowledge about this, please
modify config/linux2-config.py accordingly.
always statically (you have to force it to build a dynamic library) the
resulting binary is redistributable.
The code is made ffmpeg-version independent using #ifdef's.
+ BF_BUILDINFO=1 (by default) for build info in splash
- remove redundant renderconverter include dir
* check for win32-vc instead of only win32, so MingW compile goes ok
* This commit is all of the rewrite work done on the SCons system. For
documentation see doc/blender-scons.txt and doc/blender-scons-dev.txt.
Also http://mediawiki.blender.org/index.php/BlenderDev/SconsRefactoring
contains valuable information, along with what still needs to be done.
- linux, os x and windows compile now.
- files are compiled to BF_INSTALLDIR (see config/(platform)-config.py)
- NOTE: Jean-Luc P will commit sometime during the weekend proper
appit() for OS X. For now, copy the resulting binary to an
existing .app bundle.
- features:
- cleaner structure for better maintenance
- cleaner output during compile
- better handling of build options
- general overall speed increase
- see the wiki for more info
Cygwin, FreeBSD and Solaris systems still need work. For these systems:
1) copy a config/(platform)-config.py to ie. config/cygwin-config.py
2) set the proper defaults for your platform
3) mail me at jesterking at letwory dot net with you configuration. if
you need any modifications to the system, do send a patch, too.
I'll be giving first-aid today and tomorrow, after that it'll be all
regular development work :)
/Nathan
These should make it so that other people can compile with OpenEXR support.
(I also added the OPENAL fix erwin commited to bf-blender since I
need it for my machine, and this syncs up the file)
Kent
So for the 2.4 release, both bullet AND sumo will be enabled. You can choose in the world buttons which physics engine is active for a scene.
sorry if this breaks your builds!
using bandoler's patch as a basis (thanks!).
A couple of notes:
- This is for windows only, I did not have a chance to try linux yet.
- SConscript for PHY_Bullet may need tweaking (plus support
for other platforms), but at least it's in there :)
Any problems, shout :)
* add some ENV = os.environ's here and there (help those who have msvc toolkit installed)
Note for OSX users: check from your config.opts the correct info for the precompiled ftgl lib is used.
It seemed trivial enough, so I updated all systems (makefiles, xcode, scons, scons win installer), please complain if something went wrong. Mostly it was just removing release/bpydata references, since the release/scripts dir is already worked on recursevely, handling dirs inside it.
For the scons nsi file writer script I had to write code for each new dir, but it can be recoded recursively, too (in fact joining all release stuff in a single dir tree with nothing else would be a good idea, making installation code simpler). Since it's just python and I have a little more time now, I can help scons managers if they still need.
Thanks Campbell Barton for reporting.
1) fix evil use of internal scons interfaces that breaks latest scons version.
2) a hack to turn on new CCGSUBSURF stuff by adding -DUSE_CCGSUBSURFLIB
to extra_flags. This is currently the default for all platforms except
win32 (due solely to my ignorance of win32 compiler flags).
To enable it you will need to download OpenEXR and install it.
For the Makefiles you will need to set WITH_OPENEXR=true
and set NAN_OPENEXR to point to where OpenEXR is installed.
For scons you'll need to remove config.opts to get the new options
so you can enable OpenEXR, I was not able to get blender to link
with scons so the scons stuff may need to be tweaked a little but
I think it should work.
For other platform managers The OpenEXR stuff is similar to QUICKTIME
you need to define WITH_OPENEXR and setup the library stuff and
as you'll notice in this commit there are two extra files.
Kent