[Bf-committers] building the bmesh branch

Michael McLay mclay at mjmoi.com
Wed Aug 18 21:02:23 CEST 2010

The bmesh branch will not build using scons. The problem has to do with
library linking order when building the blender executable. The files
source/blender/modifiers/intern/MOD_mirror.c  and
source/blender/modifiers/intern/MOD_array.c call CDDM_To_BMesh(dm, NULL),
which is located in the
bf_blenkernel.a library. Since this library is linked before the library
containing the object files from MOD_array.c and MOD_mirror.c the name
CDDM_To_BMesh is never resolved. Adding bf_blenkernel.a to the end of the
list of libraries passed into BlenderProg in SConstruct fixes the linking
problem. There's probably a more elegant way to do this, but at least this
makes it possible to build the bmesh version of Blender.

=== modified file 'blender/SConstruct'
--- blender/SConstruct    2010-07-20 13:00:41 +0000
+++ blender/SConstruct    2010-08-18 18:36:15 +0000
@@ -408,7 +408,7 @@
 thesyslibs = B.setup_syslibs(env)

 if 'blender' in B.targets or not env['WITH_BF_NOBLENDER']:
-    env.BlenderProg(B.root_build_dir, "blender", dobj + mainlist +
thestatlibs, [], thesyslibs, [B.root_build_dir+'/lib'] + thelibincs,
+    env.BlenderProg(B.root_build_dir, "blender", dobj + mainlist +
thestatlibs + [B.root_build_dir+'/lib/libbf_blenkernel.a'], [], thesyslibs,
[B.root_build_dir+'/lib'] + thelibincs, 'blender')
 if env['WITH_BF_PLAYER']:
     playerlist = B.create_blender_liblist(env, 'player')
     playerlist += B.create_blender_liblist(env, 'intern')

More information about the Bf-committers mailing list