次の内容は OS 固有です。
Linux* では、インテル® oneAPI DPC++/C++ コンパイラー (dpcpp) での CMake の使用がサポートされています。CXX または CMAKE_CXX_COMPILER 文字列を dpcpp に設定する必要があります。次に例を示します。
$ CXX=dpcpp cmake ../
-または-
$ cmake –DCMAKE_CXX_COMPILER=dpcpp ../
CMake を使用してインテル® oneAPI DPC++/C++ コンパイラーでコンパイルする場合、ビルドシステムの生成ターゲットによって動作が異なります。サポートされているジェネレーターは、Microsoft* Visual Studio* と Make / Ninja です。
cmake -T "Intel® oneAPI DPC++ Compiler" -DCMAKE_CXX_COMPILER=dpcpp ../
インテルは、CMake でインテル® oneAPI DPC++/C++ コンパイラーがサポートされるように取り組んでいます。
dpcpp.exe をリンカーとして使用するように CMake に指示するいくつかの回避策があります。具体的なビルドターゲットの考慮事項は、以下の表を参照してください。
ターゲットタイプ | ステータス | 注 |
---|---|---|
実行ファイル |
回避方法あり |
「回避方法」を参照してください。 |
ライブラリー (スタティック) |
回避方法あり |
「回避方法」を参照してください。 注llvm-ar と llvm-ranlib の要件に注意してください。 |
ライブラリー (共有) |
失敗 (ソリューションはあるが未検証) |
MVC フラグと非 MVC フラグが混在する場合、互換性がないため問題が発生します。 |
次の CMake フラグ / ディレクティブを projects() 行の前に設定します。
``` set(CMAKE_CXX_COMPILER "dpcpp") include (Platform/Windows-Clang) set(CMAKE_LINKER "dpcpp") set(CMAKE_AR "llvm-ar") set(CMAKE_RANLIB "llvm-ranlib") set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_FLAGS "/EHsc") project(project-name CXX) ```
スタティック・ライブラリー・ターゲットの場合、PATH に llvm-ar と llvm-ranlib を追加する必要があります。llvm-ar はインテル® oneAPI DPC++/C++ コンパイラーに含まれていますが、llvm-ranlib は含まれていません。llvm-ranlib は、Visual Studio* の Package Manager から利用可能な LLVM / Clang インストールの一部である、Python* 向けインテル® ディストリビューションに含まれています。