Programming Guide

Contents

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.
Changes to your environment made by running the
setvars.bat
script (or the individual
vars.bat
scripts) are not permanent. Those changes only apply to the
cmd.exe
session in which the
setvars.bat
environment script was executed.

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.
Support for Microsoft Visual Studio* 2017 is deprecated as of the Intel® oneAPI 2022.1 release, and will be removed in a future release.
Inspect the individual
vars.bat
scripts to determine which, if any, command line arguments they accept.

How to Run

<install-dir>\setvars.bat
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"
Return value
SETVARS_COMPLETED=1
If the return value is anything other than
SETVARS_COMPLETED=1
the test failed and
setvars.bat
did not complete properly.

Multiple Runs

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 .. code-block:: initializing environment ... (SNIP: lot of output) .. code-block:: 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 .. code-block:: initializing environment ... (SNIP: lot of output) .. code-block:: 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.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.