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

Gilbert, Joseph T. jgilbert at tigr.ORG
Fri Sep 22 16:11:36 CEST 2006

Thank Jacques for helping me understand how to set this up. I unpacked
the .tar into blender/ and ran:
"cmake -G "Visual Studio 7 .NET 2003" ../blender from the cmake-build/
directory. Everything seem to work out great. All the .obj's are in the
cmake-build dir.

""" I have mixed feelings about this one; one of the major problems
I've... Any comments on this?"""
The biggest problem from the msvc 7 perspective is that every project in
the solution gets 'built' when you build the solution. It's an annoying
issue with msvc7 that doesn't occur with vc6. So when I hit 'build
solution' the compiler will loop through all the extern/ and intern/
libraries saying:

Build log was saved at
blender_BSP - 0 error(s),0 warning(s)

for example. I have a macro that builds a project and links that project
and then links the 'blender' project, which skips all this nonsense.
I can see having all the projects in the same solution though, but they
really need better organization. Probably project names like you
suggested. Otherwise the hierarchy looks messy. (blender_xx, intern_xx,
extern_xx or bln_xx, int_xxx, ext_xxx)

""" I did not know that I include the ActiveX controller?"""
Sorry I saw the blenderplayer in there and thought the axctl was built
as well. It wasn't. I did a check and couldn't find a project for it.
Are we removing the GP_axctl project for building the activeX plugin? I
don't know if it works but it builds at least under vc7.

""" Because there is more than one executable in the solution MSVC does
not set a startup project. You can do so by using RMB->"Set as startup
project" for the blender project."""
This is one area which I don't like. I really think the blenderplayer
and blender should have different builds. They should each have a
release and debug build. 
As a side note. Inside the .sln file the first {Project ID} listed
becomes the startup project by default. Don't know why but I used this
to set 'blender' as the startup project in vc7 files :p.
As a side note I don't understand what these builds are exactly:
3. MinSizRel
4. RelWithDebInfo - do we need a release build with debug info linked to
it? I usually build a debug build only so I can set it through the
debugger. (sorry I might just not understand)

""" TODO : Postbuild step for doing this as well as possibly create a
CPack installer target (
http://www.cmake.org/Wiki/CMake:Packaging_With_CPack )"""
Sounds good. 

I can see where you're going with ALL_BUILD vs. INSTALL. The INSTALL
build will copy out files, etc. to the bin I assume. Probably a good
idea so that you don't have to do it every time :p

This needs to be documented really well, because it's not particularly
straightforward on how to setup the projectfiles to output to which

If I would put this in my dev. process I'd prob. make a small python
script that's double-clickable. Put that script in my cmake-build/
folder and click it when I need to regen the projectfiles. For windows
(without a commandline) this would be more natural.

I am impressed by cmake's support of visual studio. I am excited as this
will let all the vc6/7/8 users compile happily. :) great work.

BTW - What would happen to the vc6/vc7 projectfiles. If this system
works well enough should we remove them?


More information about the Bf-committers mailing list