option for blender --addons rigify,io_scene_fbx,add_mesh_gears
authorCampbell Barton <ideasman42@gmail.com>
Wed, 26 Jan 2011 16:30:12 +0000 (16:30 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 26 Jan 2011 16:30:12 +0000 (16:30 +0000)
needed so ctest unit testing can be done on addons that are not enabled by default.

doc/manpage/blender.1
source/creator/creator.c

index 8338b41559ef9fd913ecc23d91128deeeb6d51bb..2c301d982e1052cfcee1da2d78b3069e0ac43978 100644 (file)
@@ -1,4 +1,4 @@
-.TH "BLENDER" "1" "January 20, 2011" "Blender Blender 2\&.56 (sub 0) "
+.TH "BLENDER" "1" "January 27, 2011" "Blender Blender 2\&.56 (sub 0) "
 
 .SH NAME
 blender \- a 3D modelling and rendering package
@@ -304,6 +304,12 @@ Run the given Python script (filename or Blender Text)
 Run blender with an interactive console
 .br
 
+.TP
+.B \-\-addons
+.br
+Comma separated list of addons (no spaces)
+.br
+
 .TP
 .B \-v or \-\-version
 .br
@@ -371,6 +377,7 @@ Arguments are executed in the order they are given. eg
   \fIBLENDER_SYSTEM_DATAFILES\fR Directory for system wide data files.
   \fIBLENDER_SYSTEM_PYTHON\fR Directory for system python libraries.
   \fITMP\fR or \fITMPDIR\fR Store temporary files here.
+  \fISDL_AUDIODRIVER\fR LibSDL audio driver \- alsa, esd, dma.
   \fIPYTHONHOME\fR Path to the python directory, eg. /usr/lib/python.
 .br
 .br
index b5aea70ac8eff95a636fdaa0d756a1b61081a69b..38ddecabc025bc84f40052ced794cd8b7879a1a7 100644 (file)
@@ -272,6 +272,7 @@ static int print_help(int UNUSED(argc), char **UNUSED(argv), void *data)
 
        BLI_argsPrintArgDoc(ba, "--python");
        BLI_argsPrintArgDoc(ba, "--python-console");
+       BLI_argsPrintArgDoc(ba, "--addons");
 
 #ifdef WIN32
        BLI_argsPrintArgDoc(ba, "-R");
@@ -925,6 +926,28 @@ static int run_python_console(int UNUSED(argc), char **argv, void *data)
 #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 @@ void setupArguments(bContext *C, bArgs *ba, SYS_SystemHandle *syshandle)
        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);