Page MenuHome

Remove SCons building system
ClosedPublic

Authored by Sergey Sharybin (sergey) on Dec 20 2015, 12:43 PM.

Details

Summary

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

Diff Detail

Repository
rB Blender
Branch
scons_removal

Event Timeline

Campbell Barton (campbellbarton) edited edge metadata.

Generally fine,

  • intern/cycles/kernel/kernels/cpu/kernel_avx.cpp: There are some comments in our code /* needed for some linkers in combination with scons making empty compilation unit in a library */, are these still needed?
  • ./build_files/build_environment/prepare_release_env.sh - still references scons.

A handful of SCons references which can be kicked too...

./intern/cycles/CMakeLists.txt:# todo: refactor this code to match scons
./source/blender/imbuf/readme.txt:For scons you need to edit blender/source/blender/imbuf/SConscript 
./source/blender/bmesh/operators/bmo_primitive.c: * this hack is only used so that scons & mingw + split-sources hack works
./source/creator/CMakeLists.txt:			# Scons copy in tools/Blender.py
./build_files/cmake/macros.cmake:		# have libs we define and that cmake & scons builds match.
This revision is now accepted and ready to land.Dec 20 2015, 1:49 PM
Sergey Sharybin (sergey) edited edge metadata.

Address feedback from Campbell

Note: Left bmesh note unchanged, it's somewhat nonsence comment which seems
to be simply outdated.

Martijn Berger (juicyfruit) edited edge metadata.

They seem to be indeed complete now.

Personally I am for the sooner is better conviction here

Sergey Sharybin (sergey) edited edge metadata.

Just a final rebase against latest master

This revision was automatically updated to reflect the committed changes.