Using CMake with Data Parallel C++ (DPC++)

The following content is OS specific.

Linux*

Using CMake with the Intel® oneAPI DPC++/C++ Compiler on Linux is supported. When you are using CMake, the compiler is enabled using the icx (variant) binary. You may need to set your CC/CXX or CMAKE_C_COMPILER /CMAKE_CXX_COMPILER string to icx/icpx. For example:

$ cmake -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx …

-OR-

$ export CC=icx; export CXX=icpx; cmake …

Windows*

Using CMake with the Intel® oneAPI DPC++/C++ Compiler on Windows is supported. When you are using CMake, the compiler is enabled using the icx (variant) binary. You may need to set your CC/CXX or CMAKE_C_COMPILER /CMAKE_CXX_COMPILER string to icx. The supported generator in the Windows environment is Ninja*.

$ cmake -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icx -GNinja … 

-OR-

$ CC=icx CXX=icx cmake -GNinja …

Support

Use the following steps to enable the compiler for your project:

  1. Add the following snippet to your project’s CMakeLists.txt:
    cmake_minimum_required(VERSION 3.21.0)

    Note

    The minimum required version for using CMake with the Intel® oneAPI DPC++/C++ Compiler is 3.21.
  2. Add the following snippet to your project’s CMakeLists.txt:
    find_package(IntelDPCPP REQUIRED)
    This snippet enables the dpcpp compiler. The DPC++ configuration package (IntelDPCPPConfig.cmake) is shipped with the Intel® oneAPI DPC++/C++ Compiler. T The package directory is found in the parent directory of icx's bin directory. Example: /deploy/linux_prod/IntelDPCPP/IntelDPCPPConfig.cmake.
  3. Select the appropriate compilers for C and C++; see the Linux and Windows sections above for specific settings.
  4. Run CMake and build your applications as normal.
  5. The DCP++ configuration package exposes other variables that may be required. Refer to the package for more information.