qisys.envsetter – controlling environment variables¶
qisys.envsetter.EnvSetter¶
-
class
qisys.envsetter.EnvSetter(build_env=None)¶ A class to manage environment variables Typical usage:
envsetter = EnvSetter() envsetter.prepend_to_path(r"c:\path\to\cmake") envsetter.set_env_var("WITH_SPAM", "ON") envsetter.source_bat(r"C:\path\to\vcvars.bat") build_env = envsetter.get_build_env() # build_env is now a *copy* of os.environ, os.environ does # NOT change qisys.command.call("cmake", env=build_env)
Notes: * this will work even if
cmakewas not in%PATH%before,- the
source_bat()function is useful to usecl.exeandNMake Makefiles. In this case, you have to sourcevsvarsall.bat.
-
get_build_env()¶ Returns a dictionary containing the new environment (note that
os.environis preserved)
-
set_env_var(variable, value)¶ Set a new variable
-
prepend_directory_to_variable(directory, variable)¶ Append a new directory to an environment variable containing a list of paths (most of the time PATH, but can be LIBDIR, for instance when using cl.exe) * The path will always be sanitize first
(absolute, native path)- No directory will be added twice
- The variable will be put in upper case on the dictionary on windows.
-
prepend_to_path(directory)¶ Append a directory to PATH environment variable
-
source_bat(bat_file)¶ Set environment variables using a .bat script Note: right now, this only works well with vcvarsall.bat scripts.
-
read_config(qibuild_cfg)¶ Read a
qibuild.config.QiBuildConfiginstance
- the