Programming Guide

Contents

Use the setvars Script with Linux* or MacOS*

Most of the component tool folders contain an environment script named
vars.sh
that configures the environment variables needed by that component to support oneAPI development work. For example, in a default installation, the
ipp
vars script on Linux or macOS is located at:
/opt/intel/ipp/latest/env/vars.sh
. This pattern is shared by all oneAPI components that include an environment
vars
script.
These component tool
vars
scripts can be called directly or collectively. To call them collectively, a script named
setvars.sh
is provided in the oneAPI installation folder. For example, in a default installation on a Linux or macOS machine:
/opt/intel/setvars.sh
.
Sourcing the
setvars.sh
script without any arguments causes it to locate and source all of the
<component>/latest/env/vars.sh
scripts installed on the system. Changes made to the environment using the
env
command can be seen after sourcing these scripts.
Changes to your environment made by sourcing the
setvars.sh
script (or the individual
vars.sh
scripts) are not permanent. Those changes only apply to the terminal session in which the
setvars.sh
environment script was sourced.

Command Line Arguments

The
setvars.sh
script supports several command-line arguments, which are displayed using the
--help
option. For example:
source /opt/intel/oneapi/setvars.sh --help
Of particular note are the
--config=file
argument and the ability to include additional arguments that will be passed to the
vars.sh
scripts that are called by the
setvars.sh
script.
The
--config=file
argument provides the ability to limit environment initialization to a specific set of oneAPI components, as well as providing a way to initialize the environment for a specific component version. For example, to limit environment setup to just the Intel® Integrated Performance Primitives (Intel® IPP) library and the Intel® oneAPI Math Kernel Library (oneMKL), create a config file that tells the
setvars.sh
script to only configure the environment variables for those two oneAPI components. More details and examples are provided in Use a Config file for setvars.sh on Linux or macOS.
Any extra arguments passed on the
setvars.sh
command line that are not described in the
setvars.sh
help message will be passed to every called
vars.sh
script. That is, if the
setvars.sh
script does not recognize an argument, it assumes the argument is meant for use by one or more component scripts and passes those extra arguments to every component
vars.sh
script that it calls. The most common extra arguments are the
ia32
and
intel64
arguments, which are used by the Intel compilers and the Intel IPP and oneMKL libraries to indicate the application target architecture.
Inspect the individual
vars.sh
scripts to determine which, if any, command line arguments they accept.

How to Run

source <install-dir>/setvars.sh
If you are using a non-POSIX shell, such as csh, use the following command:
% bash -c 'source <install-dir>/setvars.sh ; exec csh'
Alternatively, use the modulefiles scripts to set up your development environment. The modulefiles scripts work with all Linux shells.

How to Verify

After running the
setvars.sh
script, verify success by searching for the
SETVARS_COMPLETED
environment variables. If
setvars.sh
was successful,
SETVARS_COMPLETED
will have a value of 1:
env | grep SETVARS_COMPLETED
Return value
SETVARS_COMPLETED=1

Multiple Runs

Because many of the individual
env/vars.sh
scripts make significant changes to PATH, CPATH, and other environment variables, the top-level
setvars.sh
script will not allow multiple invocations of itself in the same session. This is done to ensure that your environment variables do not become too long due to redundant path references, especially the
$PATH
environment variable.
This can be overridden by passing
setvars.sh
a
--force
flag. In this example, the user tries to run
setvars.sh
twice. The second instance is stopped because
setvars.sh
has already been run.
> source <install-dir>/setvars.sh :: initializing environment ... (SNIP: lot of output) :: oneAPI environment initialized ::
> source <install-dir>/setvars.sh :: WARNING: setvars.sh has already been run. Skipping re-execution. To force a re-execution of setvars.sh, use the '--force' option. Using '--force' can result in excessive use of your environment variables
In the third instance, the user runs
setvars.sh --force
and the initialization is successful.
> source <install-dir>/setvars.sh --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.sh
script when that script is sourced. If there is already a
ONEAPI_ROOT
environment variable defined,
setvars.sh
overwrites it. This variable is primarily used by the
oneapi-cli
sample browser and the Eclipse* and Visual Studio Code* sample browsers to help them locate oneAPI tools and components, especially for in locating the
setvars.sh
script if the
SETVARS_CONFIG
feature has been enabled. For more information on the
SETVARS_CONFIG
feature, see Automate the setvars.sh Script with Eclipse*.
On Linux and macOS systems, the installer does not add the
ONEAPI_ROOT
variable to the environment. To add it to the default environment, define the variable in your local shell initialization file(s) or in the system's
/etc/environment
file.

Product and Performance Information

1

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