util: move brw_env_var_as_boolean() to util

Kind of a handy function.  And I'll want it available outside of i965
for common nir-pass helpers.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
Reviewed-by: Nicolai Hähnle <nhaehnle@gmail.com>
This commit is contained in:
Rob Clark
2015-11-18 16:43:31 -05:00
parent d3e2c48dfa
commit d278e31459
7 changed files with 35 additions and 31 deletions
+25
View File
@@ -51,3 +51,28 @@ parse_debug_string(const char *debug,
return flag;
}
/**
* Reads an environment variable and interprets its value as a boolean.
*
* Recognizes 0/false/no and 1/true/yes. Other values result in the default value.
*/
bool
env_var_as_boolean(const char *var_name, bool default_value)
{
const char *str = getenv(var_name);
if (str == NULL)
return default_value;
if (strcmp(str, "1") == 0 ||
strcasecmp(str, "true") == 0 ||
strcasecmp(str, "yes") == 0) {
return true;
} else if (strcmp(str, "0") == 0 ||
strcasecmp(str, "false") == 0 ||
strcasecmp(str, "no") == 0) {
return false;
} else {
return default_value;
}
}
+2
View File
@@ -38,6 +38,8 @@ struct debug_control {
uint64_t
parse_debug_string(const char *debug,
const struct debug_control *control);
bool
env_var_as_boolean(const char *var_name, bool default_value);
#ifdef __cplusplus
} /* extern C */