[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34407] trunk/blender: Command line options to set blender system environment variables.
Campbell Barton
ideasman42 at gmail.com
Wed Jan 19 22:30:23 CET 2011
Revision: 34407
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34407
Author: campbellbarton
Date: 2011-01-19 21:30:23 +0000 (Wed, 19 Jan 2011)
Log Message:
-----------
Command line options to set blender system environment variables.
Added because CTest has no convenient way to set environment vars for commands it runs.
--env-system-config -> BLENDER_SYSTEM_CONFIG
--env-system-datafiles -> BLENDER_SYSTEM_DATAFILES
--env-system-scripts -> BLENDER_SYSTEM_SCRIPTS
--env-system-plugins -> BLENDER_SYSTEM_PLUGINS
--env-system-python -> BLENDER_SYSTEM_PYTHON
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-19 21:13:49 UTC (rev 34406)
+++ trunk/blender/source/creator/creator.c 2011-01-19 21:30:23 UTC (rev 34407)
@@ -245,10 +245,15 @@
printf ("Misc Options:\n");
BLI_argsPrintArgDoc(ba, "--debug");
BLI_argsPrintArgDoc(ba, "--debug-fpe");
+ printf("\n");
BLI_argsPrintArgDoc(ba, "--factory-startup");
-
printf("\n");
-
+ BLI_argsPrintArgDoc(ba, "--env-system-config");
+ BLI_argsPrintArgDoc(ba, "--env-system-datafiles");
+ BLI_argsPrintArgDoc(ba, "--env-system-scripts");
+ BLI_argsPrintArgDoc(ba, "--env-system-plugins");
+ BLI_argsPrintArgDoc(ba, "--env-system-python");
+ printf("\n");
BLI_argsPrintArgDoc(ba, "-nojoystick");
BLI_argsPrintArgDoc(ba, "-noglsl");
BLI_argsPrintArgDoc(ba, "-noaudio");
@@ -399,6 +404,28 @@
return 0;
}
+static int set_env(int argc, char **argv, void *UNUSED(data))
+{
+ /* "--env-system-scripts" --> "BLENDER_SYSTEM_SCRIPTS" */
+
+ char env[64]= "BLENDER";
+ char *ch_dst= env + 7; /* skip BLENDER */
+ char *ch_src= argv[0] + 5; /* skip --env */
+
+ if (argc < 2) {
+ printf("%s requires one argument\n", argv[0]);
+ exit(1);
+ }
+
+ for(; *ch_src; ch_src++, ch_dst++) {
+ *ch_dst= (*ch_src == '-') ? '_' : (*ch_src)-32; /* toupper() */
+ }
+
+ *ch_dst= '\0';
+ BLI_setenv(env, argv[1]);
+ return 1;
+}
+
static int playback_mode(int UNUSED(argc), char **UNUSED(argv), void *UNUSED(data))
{
/* not if -b was given first */
@@ -1017,6 +1044,13 @@
BLI_argsAdd(ba, 1, NULL, "--factory-startup", "\n\tSkip reading the "STRINGIFY(BLENDER_STARTUP_FILE)" in the users home directory", set_factory_startup, NULL);
+ /* TODO, add user env vars? */
+ BLI_argsAdd(ba, 1, NULL, "--env-system-config", "\n\tSet the "STRINGIFY_ARG(BLENDER_SYSTEM_CONFIG)" environment variable", set_env, NULL);
+ BLI_argsAdd(ba, 1, NULL, "--env-system-datafiles", "\n\tSet the "STRINGIFY_ARG(BLENDER_SYSTEM_DATAFILES)" environment variable", set_env, NULL);
+ BLI_argsAdd(ba, 1, NULL, "--env-system-scripts", "\n\tSet the "STRINGIFY_ARG(BLENDER_SYSTEM_SCRIPTS)" environment variable", set_env, NULL);
+ BLI_argsAdd(ba, 1, NULL, "--env-system-plugins", "\n\tSet the "STRINGIFY_ARG(BLENDER_SYSTEM_PLUGINS)" environment variable", set_env, NULL);
+ BLI_argsAdd(ba, 1, NULL, "--env-system-python", "\n\tSet the "STRINGIFY_ARG(BLENDER_SYSTEM_PYTHON)" environment variable", set_env, NULL);
+
/* second pass: custom window stuff */
BLI_argsAdd(ba, 2, "-p", "--window-geometry", "<sx> <sy> <w> <h>\n\tOpen with lower left corner at <sx>, <sy> and width and height as <w>, <h>", prefsize, NULL);
BLI_argsAdd(ba, 2, "-w", "--window-border", "\n\tForce opening with borders (default)", with_borders, NULL);
More information about the Bf-blender-cvs
mailing list