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

Chris Want cwant at ualberta.ca
Sat Nov 4 09:05:44 CET 2006


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.

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.

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.

It would be good to get some impressions from some other
devs too.

Regards,
Chris


Erwin Coumans wrote:
> 
> You CMake efforts are great, and you got the buy-in from me!
> Even just its autogeneration of MSVC and XCode projectfiles is worth 
> inclusion into CVS. I don't think that every single build-system on 
> earth that CMake can autogenerate needs to work before it can be 
> included to CVS.
> 
> I hope this isn't another good project that gets blocked due to a few 
> stubborn/moaning developers, who are not using it anyway,
> Erwin
> 
> 
> ----- Original Message ----- From: "Jacques Beaurain" 
> <jacques.beaurain at gmail.com>
> To: "bf-blender developers" <bf-committers at projects.blender.org>
> Sent: Thursday, October 26, 2006 2:57 AM
> Subject: Re: [Bf-committers] Re: handcrafted makefiles, autotools,scons 
> and cmake ?
> 
> 
>> Hi Hans,
>>
>> On Python 2.3: we can add an option for Python 2.3 to the options then.
>>
>> On Verse issues: I will look into that this weekend
>>
>> On activity since September 19: I am a little reluctant spending a lot
>> more time on this if I don't get buy-in from the Blender dev
>> community. I can easily maintain the CMake files for my own use (Mac
>> OSX and Windows) this side, but I don't see it reaching a fully
>> polished state that is useful for everybody and all platforms if it is
>> going to stay outside CVS.
>>
>> Cheers,
>> Jacques
>> On 10/24/06, Hans Lambermont <hans at lambermont.dyndns.org> wrote:
>>
>>> Jacques Beaurain wrote:
>>>
>>> > Here is a tarball with the messages change to STATUS and the mkprot
>>> > folder moved to mkprot_cmd.
>>>
>>> Hi Jacques,
>>>
>>> I finally made some time to have a look at your Cmake work. I think it
>>> looks nice and is very promising.
>>>
>>> I ran into to following (little) issues :
>>>
>>> - I have both python2.4 and python2.3 installed. Blender on FreeBSD just
>>>   does not compile with python2.4 (see my extensive earlier posts on 
>>> this
>>>   topic why ... a fix is yet unknown).
>>>   The Cmake system choose 2.4, so I had to edit CMakeCache.txt by 
>>> hand to
>>>   fix this.
>>>
>>> - Linking barfed on the verse library (how do I enable verbose mode ?).
>>>   The NaN Makefiles for FreeBSD link OK, but without verse ;-)
>>>   Here's the output:
>>>
>>>     Linking C executable ../../../cmake-build/bin/blender
>>>     ../cmake-build/lib/libbf_blenkernel.a(verse_session.o)(.text+0x83):
>>>     In function `add_verse_server':
>>>     : undefined reference to `verse_ms_field_value'
>>>     ../cmake-build/lib/libbf_blenkernel.a(verse_session.o)(.text+0x232):
>>>     In function `cb_ping':
>>>     : undefined reference to `verse_ms_list_parse'
>>>     ../cmake-build/lib/libbf_blenkernel.a(verse_session.o)(.text+0xa13):
>>>     In function `b_verse_ms_get':
>>>     : undefined reference to `verse_ms_get_send'
>>>     *** Error code 1
>>>
>>>   This is most probably easy to fix, but I'll leave that to you :)
>>>
>>> The dependency handling looks good, the rebuild times too. Oh and nice
>>> colors :)
>>>
>>> I saw no further Cmake activity since September 19 on the mailing list.
>>> Anyone ?
>>>
>>> regards,
>>>    Hans Lambermont
>>> _______________________________________________
>>> Bf-committers mailing list
>>> Bf-committers at projects.blender.org
>>> http://projects.blender.org/mailman/listinfo/bf-committers
>>>
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at projects.blender.org
>> http://projects.blender.org/mailman/listinfo/bf-committers
>>
> 
> 
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at projects.blender.org
> http://projects.blender.org/mailman/listinfo/bf-committers
> 



More information about the Bf-committers mailing list