conan.tools.intel

IntelCC

此工具可帮助您管理 Conan 中新的 Intel oneAPI DPC++/C++Classic 生态系统。

警告

此生成器是实验性的,可能会发生破坏性更改。

警告

macOS 不支持 Intel oneAPI DPC++/C++(icx/icpx 或 dpcpp)编译器。对于 macOS 或 Xcode 支持,您必须使用 Intel C++ Classic Compiler。

注意

请记住,您需要预先安装 Intel oneAPI 软件

此生成器会创建一个 conanintelsetvars.sh|bat,该脚本包装了 Intel 的 setvars.sh|bat 脚本,用于设置所需的 Intel oneAPI 环境变量。该脚本是开始使用 Intel 编译器第一步,因为它会在您的本地环境中设置一些重要变量。

注意

如果您显式设置了 tools.intel:installation_path="" 配置(空字符串),Conan 将不会生成 conanintelsetvars 脚本。在这种情况下,您需要手动激活 Intel oneAPI 环境。

总而言之,IntelCC 生成器

  1. 读取您的配置文件 [settings][conf]

  2. 使用这些信息生成一个 conanintelsetvars.sh|bat 脚本,其中包含加载 Intel setvars.sh|bat 脚本的命令。

  3. 然后,您或选定的生成器将能够运行该脚本,并使用任何 Intel 编译器来编译项目。

注意

您可以在调用 Intel 编译器构建项目之前启动 conanintelsetvars.sh|bat。当使用 self.run 运行任何命令时,Conan 也会在 conanfile 的 build(self) 方法中调用它。

首先,请确保您使用的是如下的配置文件

intelprofile
[settings]
...
compiler=intel-cc
compiler.mode=dpcpp
compiler.version=2021.3
compiler.libcxx=libstdc++
build_type=Release

[buildenv]
CC=dpcpp
CXX=dpcpp

[conf]
tools.intel:installation_path=/opt/intel/oneapi

可以在 conanfiles 中按名称使用 IntelCC 生成器:

conanfile.py
class Pkg(ConanFile):
    generators = "IntelCC"
conanfile.txt
[generators]
IntelCC

它也可以在 conanfile 的 generate() 方法中完全实例化

conanfile.py
from conan import ConanFile
from conan.tools.intel import IntelCC

class App(ConanFile):
    settings = "os", "arch", "compiler", "build_type"

    def generate(self):
        intelcc = IntelCC(self)
        intelcc.generate()

现在,运行命令 conan install . -pr intelprofile 会生成 conanintelsetvars.sh|bat 脚本,该脚本会运行 Intel 的setvars脚本并将所有变量加载到您的本地环境中。

自定义配置

只需更改 [conf] 条目,即可应用不同的安装路径和命令参数。例如:

intelprofile
[settings]
...
compiler=intel-cc
compiler.mode=dpcpp
compiler.version=2021.3
compiler.libcxx=libstdc++
build_type=Release

[buildenv]
CC=dpcpp
CXX=dpcpp

[conf]
tools.intel:installation_path=/opt/intel/oneapi
tools.intel:setvars_args=--config="full/path/to/your/config.txt" --force

再次运行 conan install . -pr intelprofile,然后 conanintelsetvars.sh 脚本(如果我们正在使用 Linux 操作系统)将包含类似以下内容:

conanintelsetvars.sh
. "/opt/intel/oneapi/setvars.sh" --config="full/path/to/your/config.txt" --force

参考

class IntelCC(conanfile)

管理 Intel oneAPI DPC++/C++/Classic 编译器变量生成的类

arch

arch 设置

property ms_toolset

根据所选模式获取 Microsoft Visual Studio Toolset

generate(scope='build')

生成默认在构建环境中加载的 Conan Intel 文件

property installation_path

获取 Intel oneAPI 的安装根目录

property command

Intel oneAPI DPC++/C++ 编译器包含环境配置脚本,用于配置您的构建和开发环境变量。

  • 在 Linux 上,该文件是一个名为 setvars.sh 的 shell 脚本。

  • 在 Windows 上,该文件是一个名为 setvars.bat 的批处理文件。

  • Linux -> >> . /<install-dir>/setvars.sh <arg1> <arg2> <argn><arg1> <arg2> <argn> 编译器环境脚本文件接受一个可选的目标架构参数 <arg>:- intel64:为 Intel 64 架构目标生成代码并使用库。- ia32:为 IA-32 架构目标生成代码并使用库。

  • Windows -> >> call <install-dir>\setvars.bat [<arg1>] [<arg2>] 其中 <arg1> 是可选的,可以是以下之一:- intel64:为 Intel 64 架构(主机和目标)生成代码并使用库。- ia32:为 IA-32 架构(主机和目标)生成代码并使用库。

    使用 dpcpp 编译器时,<arg1> 默认为 intel64。

    <arg2> 是可选的。如果指定,则是以下之一:- vs2019:Microsoft Visual Studio* 2019- vs2017:Microsoft Visual Studio 2017

返回:

str 要运行的 setvars.sh|bat 命令

conf

IntelCC 使用这些 配置条目

  • tools.intel:installation_path(必需) 用于告知 Conan 安装路径的参数。如果未定义,Conan 将尝试自动查找。如果显式设置为等于空字符串(""),Conan 将跳过生成 conanintelsetvars 脚本,假设 Intel 环境已手动激活。

  • tools.intel:setvars_args(可选) 用于将我们想要的任何内容作为参数传递给我们的 setvars.sh|bat 文件。您可以从 Intel 官方文档中查看所有可能的参数。