Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-01-20 00:30:23 +0300
committerCampbell Barton <ideasman42@gmail.com>2011-01-20 00:30:23 +0300
commitf0d9ff34af265e6f6172c4912ff2efbde37f05b2 (patch)
tree75fa22af76cf676f39445bcd7f41f0357056d9bf /source/creator
parente2f9006bd38ec99d8633bbb9f32cf423bceb1c2c (diff)
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
Diffstat (limited to 'source/creator')
-rw-r--r--source/creator/creator.c38
1 files changed, 36 insertions, 2 deletions
diff --git a/source/creator/creator.c b/source/creator/creator.c
index 90f579a9d9e..b5aea70ac8e 100644
--- a/source/creator/creator.c
+++ b/source/creator/creator.c
@@ -245,10 +245,15 @@ static int print_help(int UNUSED(argc), char **UNUSED(argv), void *data)
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 @@ static int set_factory_startup(int UNUSED(argc), char **UNUSED(argv), void *UNUS
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 @@ void setupArguments(bContext *C, bArgs *ba, SYS_SystemHandle *syshandle)
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);