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
cmake
was not in%PATH%
before, because we will usebuild_env
when searching forcmake
. (seeqisys.command.call()
documentation) - the
source_bat()
function is useful to usecl.exe
andNMake Makefiles
. In this case, you have to sourcevsvarsall.bat
.
-
get_build_env
()¶ Returns a dictionary containing the new environment (note that
os.environ
is 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.QiBuildConfig
instance
- this will work even if