[Bf-committers] Removing Build Systems
Brecht Van Lommel
brecht at blender.org
Sun Apr 12 23:58:00 CEST 2009
Hi,
> Ton Roosendaal wrote:
>> Well; I realize there are issues for merging, but for regular
>> development the various users of each build system have always kept
>> things work nicely.
This is not the case in my experience. I always end up updating all
the build systems myself (except MSVC) because a user bugs me that the
build is broken after my commit. So now I always do SCons, CMake and
Makefiles updates.
blender at erwincoumans.com wrote:
> By the way, just like Ton I don't see the reason to drop build systems, just
> because of temporarily inconvenience during 2.5 transition.
It's not a temporary inconvenience. Blender is always in development
and in my experience build systems break all the time, for ffmpeg
upgrades, bullet upgrades, blenfont, RNA, UI scripts, game player, ..
Honestly I think I have spent about 2 weeks total on build system
stuff in the 2.5 branch. Granted, that is partly because with RNA we
try to do some tricky things, but it shouldn't be more complicated
than necessary.
Blender building issues are a daily topic in #blendercoders, and it is
often due to a build system being broken. The time spent maintaining
all these build systems could also be spent making things work better
out of the box or documenting the build process.
In my projects,
> I keep several build systems up-to-date as well (CMake, Makefiles, jam and
> jam-generated msvc projectfiles).It can be a burden sometimes, but it helps
> portability and makes some people happy.
If it was actually for compatibility I would agree, but this is not
the case.
Multiple build systems just complicate some things. Compiler and
warnings flags are not consistent. So everyone sees different warnings
and it's impossible to keep building blender warning free, and
sometimes things break, because the declaration after statement
warning is only in some build systems, etc. Then there are crashes
that can only be reproduced with certain build systems or some
dependency checking is not working correctly and things did not
rebuild correct. Or you have to spend time tracking down bugs that
were caused by some optimization flag that is only used in some
particular build system.
And we have to ask for the 100th time "what build system do you use?",
"try to do make clean", "oh you use scons, well I use this other build
system, so I don't know what the option is called", "I tried cmake
with the BF_DEBUG variable but I don't get a debug build", "yeah, you
can't make a release with that build system, start over from the
beginning with this other build system..".
I do really think we lose too much time on maintaining build systems.
Brecht.
More information about the Bf-committers
mailing list