[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31891] trunk/blender: option to disable ITASC IK solver, (will be enabled by default ofcourse)

Campbell Barton ideasman42 at gmail.com
Sun Sep 12 14:27:12 CEST 2010


Revision: 31891
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31891
Author:   campbellbarton
Date:     2010-09-12 14:27:12 +0200 (Sun, 12 Sep 2010)

Log Message:
-----------
option to disable ITASC IK solver, (will be enabled by default ofcourse)
- option only available to cmake, scons and make have this enabled always.
- without this clang/llvm can compile blender
- this was the second biggest internal lib, 192mb -> 172mb for all blenders libs (with debug flags), so gives some speedup to linking. 

Modified Paths:
--------------
    trunk/blender/CMakeLists.txt
    trunk/blender/intern/CMakeLists.txt
    trunk/blender/source/blender/ikplugin/BIK_api.h
    trunk/blender/source/blender/ikplugin/CMakeLists.txt
    trunk/blender/source/blender/ikplugin/SConscript
    trunk/blender/source/blender/ikplugin/intern/Makefile
    trunk/blender/source/blender/ikplugin/intern/ikplugin_api.c
    trunk/blender/source/blender/ikplugin/intern/itasc_plugin.cpp
    trunk/blender/source/creator/CMakeLists.txt

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2010-09-12 12:16:50 UTC (rev 31890)
+++ trunk/blender/CMakeLists.txt	2010-09-12 12:27:12 UTC (rev 31891)
@@ -70,6 +70,7 @@
 OPTION(WITH_PYTHON        "Enable Embedded Python API" ON)
 OPTION(WITH_BUILDINFO     "Include extra build details" ON)
 OPTION(WITH_FLUID        "Enable Elbeem (Fluid Simulation)" ON)
+OPTION(WITH_IK_ITASC      "Enable ITASC IK solver" ON)
 OPTION(WITH_FFTW3         "Enable FFTW3 support (Used for smoke and audio effects)" OFF)
 OPTION(WITH_BULLET        "Enable Bullet (Physics Engine)" ON)
 OPTION(WITH_GAMEENGINE    "Enable Game Engine" ON)

Modified: trunk/blender/intern/CMakeLists.txt
===================================================================
--- trunk/blender/intern/CMakeLists.txt	2010-09-12 12:16:50 UTC (rev 31890)
+++ trunk/blender/intern/CMakeLists.txt	2010-09-12 12:27:12 UTC (rev 31891)
@@ -33,7 +33,6 @@
 ADD_SUBDIRECTORY(memutil)
 ADD_SUBDIRECTORY(decimation)
 ADD_SUBDIRECTORY(iksolver)
-ADD_SUBDIRECTORY(itasc)
 ADD_SUBDIRECTORY(boolop)
 ADD_SUBDIRECTORY(opennl)
 ADD_SUBDIRECTORY(smoke)
@@ -42,4 +41,8 @@
 	ADD_SUBDIRECTORY(elbeem)
 ENDIF(WITH_FLUID)
 
+IF(WITH_IK_ITASC)
+	ADD_SUBDIRECTORY(itasc)
+ENDIF(WITH_IK_ITASC)
+
 ADD_SUBDIRECTORY(bsp)

Modified: trunk/blender/source/blender/ikplugin/BIK_api.h
===================================================================
--- trunk/blender/source/blender/ikplugin/BIK_api.h	2010-09-12 12:16:50 UTC (rev 31890)
+++ trunk/blender/source/blender/ikplugin/BIK_api.h	2010-09-12 12:27:12 UTC (rev 31891)
@@ -73,7 +73,6 @@
 // number of solver available
 // 0 = iksolver
 // 1 = iTaSC
-#define BIK_SOLVER_COUNT		2
 
 /* for use in BIK_get_constraint_param */
 #define BIK_PARAM_CONSTRAINT_ERROR		0

Modified: trunk/blender/source/blender/ikplugin/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/ikplugin/CMakeLists.txt	2010-09-12 12:16:50 UTC (rev 31890)
+++ trunk/blender/source/blender/ikplugin/CMakeLists.txt	2010-09-12 12:27:12 UTC (rev 31891)
@@ -24,12 +24,27 @@
 #
 # ***** END GPL LICENSE BLOCK *****
 
-FILE(GLOB SRC intern/*.c intern/*.cpp)
 
+SET(SRC
+	./intern/ikplugin_api.c
+	./intern/iksolver_plugin.c
+)
+
 SET(INC 
-  ../../../intern/guardedalloc ../../../intern/iksolver/extern
-  ../../../intern/itasc ../../../extern/Eigen2
-  ../blenlib ../makesdna ../blenkernel ../include ../ikplugin
+	../blenlib
+	../makesdna
+	../blenkernel
+	../include
+	../ikplugin
+	../../../intern/guardedalloc
+	../../../intern/iksolver/extern
 )
 
+IF(WITH_IK_ITASC)
+	ADD_DEFINITIONS(-DWITH_IK_ITASC)
+	LIST(APPEND INC ../../../extern/Eigen2)
+	LIST(APPEND INC ../../../intern/itasc)
+	LIST(APPEND SRC ./intern/itasc_plugin.cpp)
+ENDIF(WITH_IK_ITASC)
+
 BLENDERLIB(bf_ikplugin "${SRC}" "${INC}")

Modified: trunk/blender/source/blender/ikplugin/SConscript
===================================================================
--- trunk/blender/source/blender/ikplugin/SConscript	2010-09-12 12:16:50 UTC (rev 31890)
+++ trunk/blender/source/blender/ikplugin/SConscript	2010-09-12 12:27:12 UTC (rev 31891)
@@ -1,9 +1,11 @@
 #!/usr/bin/python
 Import ('env')
-
+defs = []
 sources = env.Glob('intern/*.c') + env.Glob('intern/*.cpp')
 
 incs = '#/intern/guardedalloc #/intern/iksolver/extern ../makesdna ../blenlib'
 incs += ' ../blenkernel ../include ../ikplugin #/intern/itasc #/extern/Eigen2'
 
-env.BlenderLib ( 'bf_ikplugin', sources, Split(incs), [], libtype=['core','player'], priority=[180, 190] )
+defs.append('WITH_IK_ITASC')
+
+env.BlenderLib ( 'bf_ikplugin', sources, Split(incs), defs, libtype=['core','player'], priority=[180, 190] )

Modified: trunk/blender/source/blender/ikplugin/intern/Makefile
===================================================================
--- trunk/blender/source/blender/ikplugin/intern/Makefile	2010-09-12 12:16:50 UTC (rev 31890)
+++ trunk/blender/source/blender/ikplugin/intern/Makefile	2010-09-12 12:27:12 UTC (rev 31891)
@@ -30,6 +30,9 @@
 
 include nan_compile.mk
 
+CFLAGS += -DWITH_IK_ITASC
+CPPFLAGS += -DWITH_IK_ITASC
+
 CFLAGS += $(LEVEL_1_C_WARNINGS)
 CFLAGS += -I$(NAN_GUARDEDALLOC)/include
 CFLAGS += -I../../makesdna

Modified: trunk/blender/source/blender/ikplugin/intern/ikplugin_api.c
===================================================================
--- trunk/blender/source/blender/ikplugin/intern/ikplugin_api.c	2010-09-12 12:16:50 UTC (rev 31890)
+++ trunk/blender/source/blender/ikplugin/intern/ikplugin_api.c	2010-09-12 12:27:12 UTC (rev 31891)
@@ -42,10 +42,12 @@
 
 #include "ikplugin_api.h"
 #include "iksolver_plugin.h"
+
+#ifdef WITH_IK_ITASC
 #include "itasc_plugin.h"
+#endif
 
-
-static IKPlugin ikplugin_tab[BIK_SOLVER_COUNT] = {
+static IKPlugin ikplugin_tab[] = {
 	/* Legacy IK solver */
 	{
 		iksolver_initialize_tree,
@@ -55,6 +57,7 @@
 		NULL,
 		NULL,
 		NULL,
+#ifdef WITH_IK_ITASC
 	},
 	/* iTaSC IK solver */
 	{
@@ -65,13 +68,13 @@
 		itasc_clear_cache,
 		itasc_update_param,
 		itasc_test_constraint,
+#endif
 	}
 };
 
-
 static IKPlugin *get_plugin(bPose *pose)
 {
-	if (!pose || pose->iksolver < 0 || pose->iksolver >= BIK_SOLVER_COUNT)
+	if (!pose || pose->iksolver < 0 || pose->iksolver >= (sizeof(ikplugin_tab) / sizeof(IKPlugin)))
 		return NULL;
 
 	return &ikplugin_tab[pose->iksolver];
@@ -135,3 +138,4 @@
 	if (plugin && plugin->test_constraint)
 		plugin->test_constraint(ob, cons);
 }
+

Modified: trunk/blender/source/blender/ikplugin/intern/itasc_plugin.cpp
===================================================================
--- trunk/blender/source/blender/ikplugin/intern/itasc_plugin.cpp	2010-09-12 12:16:50 UTC (rev 31890)
+++ trunk/blender/source/blender/ikplugin/intern/itasc_plugin.cpp	2010-09-12 12:27:12 UTC (rev 31891)
@@ -32,6 +32,7 @@
 #include <vector>
 
 // iTaSC headers
+#ifdef WITH_IK_ITASC
 #include "Armature.hpp"
 #include "MovingFrame.hpp"
 #include "CopyPose.hpp"
@@ -40,6 +41,7 @@
 #include "Scene.hpp"
 #include "Cache.hpp"
 #include "Distance.hpp"
+#endif
 
 #include "MEM_guardedalloc.h"
 

Modified: trunk/blender/source/creator/CMakeLists.txt
===================================================================
--- trunk/blender/source/creator/CMakeLists.txt	2010-09-12 12:16:50 UTC (rev 31890)
+++ trunk/blender/source/creator/CMakeLists.txt	2010-09-12 12:27:12 UTC (rev 31891)
@@ -561,9 +561,9 @@
 		LIST(APPEND BLENDER_SORTED_LIBS bf_intern_guardedalloc_cpp)
 	ENDIF(WITH_CXX_GUARDEDALLOC)
 
-	IF(WITH_QUICKTIME)
-		LIST(APPEND BLENDER_SORTED_LIBS bf_quicktime)
-	ENDIF(WITH_QUICKTIME)
+	IF(WITH_IK_ITASC)
+		LIST(APPEND BLENDER_SORTED_LIBS bf_intern_itasc)
+	ENDIF(WITH_IK_ITASC)
 
 
 	FOREACH(SORTLIB ${BLENDER_SORTED_LIBS})





More information about the Bf-blender-cvs mailing list