A newer version of this document is available. Customers should click here to go to the newest version.
Use the setvars Script with Windows*
Most of the oneAPI component tool folders contain an environment script named vars.bat that configures the environment variables needed by that component to support oneAPI development work. For example, in a default installation, the Intel® Integrated Performance Primitives (Intel® IPP) vars script on Windows is located at: C:\Program Files (x86)\Intel\oneAPI\ipp\latest\env\vars.bat. This pattern is shared by all oneAPI components that include an environment vars setup script.
These component tool vars scripts can be called directly or collectively. To call them collectively, a script named setvars.bat is provided in the oneAPI installation folder. For example, in a default installation on a Windows machine: C:\Program Files (x86)\Intel\oneAPI\setvars.bat.
Running the setvars.bat script without any arguments causes it to locate and run all <component>\latest\env\vars.bat scripts in the installation. Changes made to the environment by these scripts can be seen by running the Windows set command after running the environment setup scripts.
Visual Studio Code* developers can install a oneAPI environment extension to run the setvars.bat within Visual Studio Code. Learn more in Using Visual Studio Code with Intel oneAPI Toolkits.
Command Line Arguments
The setvars.bat script supports several command-line arguments, which are displayed using the --help option. For example:
"C:\Program Files (x86)\Intel\oneAPI\setvars.bat" --help
The --config=file argument and the ability to include arguments that will be passed to the vars.bat scripts that are called by the setvars.bat script can be used to customize the environment setup.
The --config=file argument provides the ability to limit environment initialization to a specific set of oneAPI components. It also provides a way to initialize the environment for specific component versions. For example, to limit environment setup to just the Intel® IPP library and the Intel® oneAPI Math Kernel Library (Intel® oneMKL), pass a config file that tells the setvars.bat script to only call the vars.bat environment scripts for those two oneAPI components. More details and examples are provided in Use a Config file for setvars.bat on Windows.
Any extra arguments passed on the setvars.bat command line that are not described in the setvars.bat help message will be passed to every called vars.bat script. That is, if the setvars.bat script does not recognize an argument, it assumes the argument is meant for use by one or more component vars scripts and passes those extra arguments to every component vars.bat script that it calls. The most common extra arguments are ia32 and intel64, which are used by the Intel compilers and the IPP, MKL, and TBB libraries to specify the application target architecture.
If more than one version of Microsoft Visual Studio* is installed on your system, you can specify which Visual Studio environment should be initialized as part of the oneAPI setvars.bat environment initialization by adding the vs2017, vs2019, or vs2022 argument to the setvars.bat command line. By default, the most recent version of Visual Studio is located and initialized.
Inspect the individual vars.bat scripts to determine which, if any, command line arguments they accept.
How to Run
To run setvars.bat or a vars.bat script in a PowerShell window, use the following:
cmd.exe "/K" '"C:\Program Files (x86)\Intel\oneAPI\setvars.bat" && powershell'
How to Verify
After executing setvars.bat, verify success by searching for the SETVARS_COMPLETED environment variable. If setvars.bat was successful the SETVARS_COMPLETED environment variable will have a value of 1:
set | find "SETVARS_COMPLETED"
If the return value is anything other than SETVARS_COMPLETED=1 the test failed and setvars.bat did not complete properly.
Because many of the individual env\vars.bat scripts make significant changes to PATH, CPATH, and other environment variables, the top-level setvars.bat script will not allow multiple invocations of itself in the same session. This is done to ensure that your environment variables do not exceed the maximum provided environment space, especially the %PATH% environment variable. Exceeding the available environment space results in unpredictable behavior in your terminal session and should be avoided.
This behavior can be overridden by passing setvars.bat the --force flag. In this example, the user tries to run setvars.bat twice. The second instance is stopped because setvars.bat has already been run.
> <install-dir>\setvars.bat initializing environment ... (SNIP: lot of output) oneAPI environment initialized
> <install-dir>\setvars.bat .. code-block:: WARNING: setvars.bat has already been run. Skipping re-execution. To force a re-execution of setvars.bat, use the '--force' option. Using '--force' can result in excessive use of your environment variables.
In the third instance, the user runs <install-dir>\setvars.bat --force and the initialization is successful.
> <install-dir>\setvars.bat --force initializing environment ... (SNIP: lot of output) oneAPI environment initialized
ONEAPI_ROOT Environment Variable
The ONEAPI_ROOT variable is set by the top-level setvars.bat script when that script is sourced. If there is already a ONEAPI_ROOT environment variable defined, setvars.bat temporarily overwrites it in the cmd.exe session in which you ran the setvars.bat script. This variable is primarily used by the oneapi-cli sample browser and the Microsoft Visual Studio and Visual Studio Code* sample browsers to help them locate oneAPI tools and components, especially for locating the setvars.bat script if the SETVARS_CONFIG feature has been enabled. For more information about the SETVARS_CONFIG feature, see Automate the setvars.bat Script with Microsoft Visual Studio*.
On Windows systems, the installer adds the ONEAPI_ROOT variable to the environment.
Did you find the information on this page useful?