This will respect the official build configuration where we should
have BLOSC enabled.
We can't really detect if OpenVDB was compiled with BLOSC or not,
so seems we can't really avoid this extra flag.
This way we are always sure that we are using latest ever configuration
without need to manually poke buildbot after doing changes in the building
environment.
Also uncomment code back, was a left-over from some debug.
While SCons building system was serving us really good for ages it's no longer
having much attention by the developers and started to become quite a difficult
task to maintain.
What's even worse -- there started to be quite serious divergence between SCons
and CMake which was only accumulating over the releases now. The fact that none
of the active developers are really using SCons and that our main studio is also
using CMake spotting bugs in the SCons builds became quite a difficult task and
we aren't always spotting them in time.
Meanwhile CMake became really mature building system which is available on every
platform we support and arguably it's also easier and more robust to use.
This commit includes:
- Removal of actual SCons building system
- Removal of SCons git submodule
- Removal of documentation which is stored in the sources and covers SCons
- Tweaks to the buildbot master to stop using SCons submodule
(this change requires deploying to the server)
- Tweaks to the install dependencies script to skip installing or mentioning
SCons building system
- Tweaks to various helper scripts to avoid mention of SCons folders/files
as well
Reviewers: mont29, dingto, dfelinto, lukastoenne, lukasstockner97, brecht, Severin, merwin, aligorith, psy-fi, campbellbarton, juicyfruit
Reviewed By: campbellbarton, juicyfruit
Differential Revision: https://developer.blender.org/D1680
- Remove deprecated/unused builders
- Remove unused SCons OSX slave configuration
- Remove SCons slave logic, it is not giving error about unknown building
system used for the slave.
This is totally matching the way how buildbot was naming the directory.
Currently there's a bit of code duplication, but it'll be eliminated once
we'll get rid of SCons ;)
No idea why they works on windows, but points are:
- libs/tests folder is NOT checked out on any platforms
- render_povray addon does mkdir on a path which might not have parents
There might be some other issues, but those are kinda stoppers for us.
It is expected to be in the build folder for the cmake.
Ideally it should be build/<builder> or install/<builder> but that's a bit more
involved change. Will look into it later.
This is so called "seems to work in dry tests" commit which is aimed to switch
linux release environment to CMake.
Some notes:
- There's no special handle of libstdc++, but it wasn't really static for quite
some time in SCons configuration and nobody really complained.
- It was quite tricky to get OpenMP linked statically with just using some
configuration so we went ahead and added a special option to CMake now which is
only exist on Linux and advertised as shouldn't be used.
- Packing is happening manually in slave_pack.py. This is because we have to add
some really special files to the archive (mesa libraries for example) which we
can't really handle from CMake/CPack in a nice generic way.
Don't think it's bad approach, at least crappynness is localized and it's not
_that_ crappy anyway.
- Windows buildbot should keep working, but needs doublechecing. It's just a
build folder changed, but you never know what it might imply.
- Some further tweaks are likely needed to ensure all builders are working.
Thanks Campbell for assistance in this patch!
Currently disable all of them, in practice i think way to go should be:
- Disable Experimental kernels on 32 bit, build up to sm_35
- Later we can drop all 32bit kernels, but try to keep at least one release
with some of the kernels (they'll cover 99% of users anyway)
Before doing any changes we should surely communicate such a changes before
we apply them.
Our version of clang fails with latest SDK. It's not really clear if such
change will disable openmp or not (-fopenmp doesn't throw an error, but
it might be a silent fail).
In any case, builds without OpenMP is better than no builds at all.\
This is more an experiment, not guaranteed to work but at the same time
building of kernels seems to work manually in the same chroot. Perhaps
latest changes helped compiler to optimize registers usage.
This commit makes sure Linux and Windows buildbots are using OpenSubdiv
and also enables OpenSubdiv by default on Windows.
OSX is kept disabled still, this is due to OpenGL restrictions which are
not solved in any way yet.
Linux is defaults to OpenSubdiv disabled because it needs precompiled
library.
The documentation could be found there:
http://wiki.blender.org/index.php/User:Nazg-gul/OpenSubdiv
Recent changes to kernel broke compilation of the kernels again, need some
other kind of solution for this issue.
Don't have much time for this currently, but will be addressed before the
release.
Meanwhile it's better to have some buildbot builds instead of totally failing
one.
Did this in packaging buildbot rule because of several reasons:
- CMake doesn't deliver name of package which we expect it to be for buildbot
- CMake doesn't really know that building happens for buildbot
- Making default CPAck name matching buildbot's naming is kinda stupid
Probably we can pass CPack name via command line arguments, but i'm happy with
the current state and one might change things in the future.
Doesn't mean we're 100% ready for the transition, but need to start somewhere
anyway. Changes:
- OSL is no longer supporting cpp and requires usage of Boost Wave.
So now Wave component of Boost is optionally demanded when looking for the
Boost libraries if OSL is enabled.
Only did this for Linux, MSVC seems already using Wave. Not sure about OSX.
- Because of the same reason OSL should be moved prior Boost for linker.
- Whole archive trick makes it so linking fails with duplicated symbols, so
removed it for the new OSL. Didn't see issues with this so far.
- Added some code to check OSL version on Linux. Would need to move all that
to FindOpenShadingLanguage.cmake which we can get from Cycles standalone
repository.
So in theory no affect on current stup would be made at all.
- Added some tweaks to buildbot files. It now seems to be happy with the new
OSL libraries, but again, those tweaks are not in action yet.
All this was tested on Linux only. Win/OSX might still need some tweaks to
support new OSL.
P.S. This doesn't mean we're pushing OSL update yet, just making some
preliminary tweaks to avoid entropy of PITA when we'll actually want to
switch.
New scons discontinued support of python2.6, so we needed
to build just another python in the release and buildbot
environment.
Hope latest scons upgrade a least bring new msvs support
and not only lead to just-another-frustration.
There might be some more upcoming commits, because you
never can be sure there's no typos in the buidbot script
for until you actually fire the builder up.
- due OSL i386 never worked on OSX, the new libs do not even contain this arch !
- As we had to fix duplicated symbols from generic UTF finctions same in LLVM and COLLADA,
LLVM-less build must have UTF lib reenabled
Issue with previous code was that branch selected was applied to all repositories.
To be able to control branch on a per-repo basis, we need to use codebases instead.
This commit only enables branch (master/testbuild) and revision selection for master,
we probably do not need this for submodules currently (easy to enable anyway).
Note: tested on local buildbot setup, for linux only (up to build step, have no build env).
This is a temporary solution in order to get at least
rest of the blender begin up-to-date on the buildbot.
To be able to compile cubins again we need to switch
OSX builder machine to OSX 10.8 and CUDA toolkit 6,
which might take some time, unfortunately.
This also updates the configurations to build kernels for compute capability
5.0 cards, when using and older CUDA toolkit version this will be skipped.
Also includes tweaks to improve performance with this version:
* Increase max registers on sm_30, sm_35 and sm_50
* No longer use texture storage on sm_30
Consider this configuration final-1 for the migration,
Linux and OSX slaves seems to be fine, Windows slave
would need some changes from the slave side.
This means that if you have WITH_BF_QUICKTIME or WITH_CODEC_QUICKTIME enabled,
it will always use QTKit.
The old backend was only used on 32 bit OS X builds, now 32 and 64 bit builds will
give consistent input/output. On Windows or Linux quicktime isn't being used.
Add numpy installation to blender player configuration,
this is so because player is building first and it installs
python, which prevented numpy installation from blender
configuration.
Added new build option WITH_JACK_DYNLOAD for CMake and
WITH_BF_JACK_DYNLOAD for SCons, which means there'll be
no build-time linking against libjack and getting symbols
from libjack will happen runtime using dlopen and dlsym
tricks.
Alternative would be to use weak linking, but it'll require
having wrapper for preloading libjack.
This new options are disabled by default and they only
intended to be used on linux. Other platforms shall not
be using this and there shall be no functional changes
on non-linux platforms at all.
Make it so install directory is being nicely
cleaned before next build, which makes it
automatically removing all old files from
previous installations.
Otherwise linux buildbot fails dramatically.
That revision also leads to msvc runtime libs being removed, will fix this
in separate commit.
Take more respect for such creepy as linux and windows platforms, they're not so bad!
* Deprecate computing capability 1.3 (sm_13)
This commit disables auto build of sm_13 CUDA platform, which means that starting with Blender 2.67, we don't support sm_13 devices anymore. It has become difficult to support that and it was already feature incomplete (no render-passes, AO, Multi Closure etc).
It's still possible to manually enable sm_13 for own tests, but building might break in the future.
Crosscompiling of cubins doesn't work on linux with toolkit 4.2,
so use native toolkit for now. Disabled sm_13 for 32bit platform
for now.
Would keep cudakernels build target for a while. It doesn't hurt
being in the code and it could be helpful again once we'll switch
to toolkit 5.x where crosscompilation works fine.
Some further tweaks could probably be needed still, let's see how
building goes on buildbot now :)
Issue was caused by how CUDA devices availability done in Cycles.
Basically, if there's no WITH_CUDA_BINARIES buildtime, nvcc becomes
mandatory dependency.
Since kernels are building in separate target now, this logic broke
a bit.
Perhaps condition in util_cuda shall be changed to be a bit smarter,
but for now just work-around by enabling CUDA binaries when building
Cycles. Made it empty arch list to be sure no kernels will try to
re-compile after cudakernels target is done.
- BF_BITNESS should be passed as a command line argument
- Made it so CUDA binaries and OSL compiled scripts would
be installed regardless WITH_BF_PYTHON (which seems to
be quite obvious)
- Disable overwrite install, so CUDA kernels installed by
it's build target will be preserved when building blender
itself.
* Use rsync upload for Mac slave, rather than uploading entire file. This could
be enabled for more slaves, should make more frequent builds possible.
* Split Mac into 10.6 and 10.5 builds.
Initial support of OSL builds using SCons build system. Only tested on Linux now.
No changes to configuration files themselves -- for now check how it's configured
for linux buildbot (it was already horror to make all this changes and verify them,
changes to linux-config.py could easily be done later).
Currently WITH_BF_STATICOSL and WITH_BF_STATICLLVM are more like rudiments because
linking against oslexec requires special trick with --whole-archive. We woul either
need to find a way dealing with this oslexec less hackish or drop STATICOSL and
STATICLLVM flags. Will keep dropping this flags for until we have "final" build
rules for OSL.
Still can not make 32bit linux rendering with OSL -- blender simply crashes when
starting rendering. So for time being this issues are solving disabled OSL for
32bit build slaves.
- Force libsamplerate linking statically
- Remove global compiler flags for sse2 and sse.
Tests of release builds didn't show big difference in time of
tracking using SAD algorithm or time of solving,
so this shouldn't introduce big slowdown.
- use cores+1 threads
- do not clean build directories
- separate build directories for blender and blenderplayer
This should make compilation much faster and buildbot rebuild tag could
happen more often
Force link to zlib for all platforms/tragets to be sure there'll
be no gzopen64 symbol undefined (it was in some dependend library, so
blenderplayer wasn't working in fedora 13 32bit)
- Remove packed to buildbot_archive.zip archive file to keep scons install
directory as clean as possible (if i understood correct, this file isn't
actually needed in the future, so we could remove it just after packing rather
than cleaning install directory before packing as it's done for cmake)
- No need in scripts installation for linux slaves when preparing archive
- Use the same config as we're using for release builds
- Added stipping (maybe it should be generalized)
- Not software gl packing, bot would be easy to add
Note, that you should have special environment to create
proper linux builts (which would work for everybody)