Use CMake with oneAPI Applications

The CMake packages provided with Intel oneAPI products allow a CMake project to make easy use of oneAPI libraries on Windows* or Linux*. Using the provided packages, the experience should be similar to how other system libraries integrate with a CMake project. There are dependency and other build variables provided to CMake project targets as desired.

The following components support CMake:

  • Intel® oneAPI DPC++ Compiler - Linux, Windows

  • Intel® Integrated Performance Primitives (Intel® IPP) and Intel® Integrated Performance Primitives Cryptography (Intel® IPP Cryptography) - Linux, Windows

  • Intel® MPI Library - Linux, Windows

  • Intel® oneAPI Collective Communications Library (oneCCL) - Linux, Windows

  • Intel® oneAPI Data Analytics Library (oneDAL) - Linux, Windows

  • Intel® oneAPI Deep Neural Network Library (oneDNN) - Linux, Windows

  • Intel® oneAPI DPC++ Library (oneDPL) - Linux, Windows

  • Intel® oneAPI Math Kernel Library (oneMKL) - Linux, Windows

  • Intel® oneAPI Threading Building Blocks (oneTBB) - Linux, Windows

  • Intel® Video Processing Library (oneVPL) - Linux, Windows

Note

Starting with the 2024.0 release, macOS is no longer supported in Intel® oneAPI Toolkits and components. Several Intel-led open source developer tool projects will continue supporting macOS on Apple Silicon including oneAPI Threading Building Blocks (oneTBB) and Intel® Implicit SPMD Program Compiler and we welcome the opportunity to work with contributors to expand support to additional tools in the future.

Libraries that provide a CMake configuration can be identified by looking in the following locations:

  • On Linux or macOS:

    • System: /usr/local/lib/cmake`

    • User: ~/lib/cmake`

  • On Windows: HKEY_LOCAL_MACHINESoftwareKitwareCMakePackages\`

To use the CMake packages, use the oneAPI libraries as you would other system libraries. For example, using find_package(tbb) ensures that your application’s CMake package is using the oneTBB package.