[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34509] trunk/blender: option for blender --addons rigify, io_scene_fbx, add_mesh_gears

Campbell Barton ideasman42 at gmail.com
Wed Jan 26 17:30:13 CET 2011


Revision: 34509
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34509
Author:   campbellbarton
Date:     2011-01-26 16:30:12 +0000 (Wed, 26 Jan 2011)
Log Message:
-----------
option for blender --addons rigify,io_scene_fbx,add_mesh_gears
needed so ctest unit testing can be done on addons that are not enabled by default.

Modified Paths:
--------------
    trunk/blender/doc/manpage/blender.1
    trunk/blender/source/creator/creator.c

Modified: trunk/blender/doc/manpage/blender.1
===================================================================
(Binary files differ)

Modified: trunk/blender/source/creator/creator.c
===================================================================
--- trunk/blender/source/creator/creator.c	2011-01-26 16:21:54 UTC (rev 34508)
+++ trunk/blender/source/creator/creator.c	2011-01-26 16:30:12 UTC (rev 34509)
@@ -272,6 +272,7 @@
 
 	BLI_argsPrintArgDoc(ba, "--python");
 	BLI_argsPrintArgDoc(ba, "--python-console");
+	BLI_argsPrintArgDoc(ba, "--addons");
 
 #ifdef WIN32
 	BLI_argsPrintArgDoc(ba, "-R");
@@ -925,6 +926,28 @@
 #endif /* WITH_PYTHON */
 }
 
+static int set_addons(int argc, char **argv, void *data)
+{
+	/* workaround for scripts not getting a bpy.context.scene, causes internal errors elsewhere */
+	if (argc > 1) {
+#ifdef WITH_PYTHON
+		char *str= malloc(strlen(argv[1]) + 100);
+		bContext *C= data;
+		sprintf(str, "[__import__('bpy').utils.addon_enable(i) for i in '%s'.split(',')]", argv[1]);
+		BPY_CTX_SETUP(BPY_string_exec(C, str));
+		free(str);
+#else
+		(void)argv; (void)data; /* unused */
+#endif /* WITH_PYTHON */
+		return 1;
+	}
+	else {
+		printf("\nError: you must specify a comma separated list after '--addons'.\n");
+		return 0;
+	}
+}
+
+
 static int load_file(int UNUSED(argc), char **argv, void *data)
 {
 	bContext *C = data;
@@ -1073,6 +1096,7 @@
 	BLI_argsAdd(ba, 4, "-j", "--frame-jump", "<frames>\n\tSet number of frames to step forward after each rendered frame", set_skip_frame, C);
 	BLI_argsAdd(ba, 4, "-P", "--python", "<filename>\n\tRun the given Python script (filename or Blender Text)", run_python, C);
 	BLI_argsAdd(ba, 4, NULL, "--python-console", "\n\tRun blender with an interactive console", run_python_console, C);
+	BLI_argsAdd(ba, 4, NULL, "--addons", "\n\tComma separated list of addons (no spaces)", set_addons, C);
 
 	BLI_argsAdd(ba, 4, "-o", "--render-output", output_doc, set_output, C);
 	BLI_argsAdd(ba, 4, "-E", "--engine", "<engine>\n\tSpecify the render engine\n\tuse -E help to list available engines", set_engine, C);




More information about the Bf-blender-cvs mailing list