[Bf-committers] Re: handcrafted makefiles, autotools, scons and cmake ?

Jacques Beaurain jacques.beaurain at gmail.com
Sat Nov 4 17:01:54 CET 2006


Hi Chris,

Thanks for your evaluation. Below a couple of notes...

On 11/4/06, Chris Want <cwant at ualberta.ca> wrote:
>
> I've finally had some time to evaluate this and compare
> build/rebuild times with those from make on 32/64 bit linux.
> The numbers are pretty good, and this is a nice, smart, and
> easy to use system. With a single change in source/blender/src,
> the rebuild time is almost on par with 'make quicky'. Changes
> to dna headers seem to be handled well with CMake, and blender
> rebuilds fairly quickly (I don't think make handles these
> dependancies very well at all). These tests aren't entirely fair,
> since the CMake build system does not handle things like ffmpeg
> which slows make down a bit.
>

I will work on getting the ffmpeg support added after tomorrow's
meeting. I originally based my development on a SCons config without
this which is why it has not been added. I have not been following the
ffmpeg development, a quick look tells me it is Linux only at the
moment, am I correct?

> My main criticism with the current implementation is with the
> creation of ../cmake-build. I would recommend putting cmake-build
> in the current directory and encourage people to build in
> directories other than the source directory. Putting cmake-build
> in the parent directory can be problematic, in a scenario where
> you might want to have builds with different configs, like:
>
> my-sources/blender  <-------- source tree
> my-sources/target   <-------- regular build tree
> my-sources/target-nosound <-- build tree with no sound
>
> Here, both target and target-nosound will try to write
> their output to ../cmake-build, which is the same
> directory ... not too good.

Very good point. I originally built in the source tree which is why I
wanted to redirect my final binaries outside. I used a hardcoded way
which I never removed once I came to the realization that I can do an
out of source build. Here is how to achieve exactly what you describe
above which will result in a bin and a lib folder underneath the
individual build trees (which can be located anywhere):

Remove the following line from the main CMakeLists.txt

SET(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/../cmake-build)

>
> Anyways, unless some problems are found on some other
> systems, and provided the author is committed to maintaining
> and supporting all of the various configurations in blender,
> this build system gets my endorsement.

I am totally committed to maintaining this system (I believe it will
not take much effort either once the final hurdles are overcome), as
long as it will actually be used, and from the sound of it enough
people are interested to make it worthwhile.

Jacques


More information about the Bf-committers mailing list