conan.tools.intel¶
IntelCC¶
此工具可帮助您在 Conan 中管理新的 Intel oneAPI DPC++/C++ 和 经典 生态系统。
警告
此生成器处于实验阶段,可能会发生重大更改。
警告
Intel oneAPI DPC++/C++ (icx/icpx 或 dpcpp) 编译器不支持 macOS。对于 macOS 或 Xcode 支持,您必须使用 Intel C++ 经典编译器。
注意
请记住,您需要事先安装 Intel oneAPI 软件。
此生成器会创建一个conanintelsetvars.sh|bat
,它会包装 Intel 脚本setvars.sh|bat
,该脚本设置所需的 Intel oneAPI 环境变量。该脚本是开始使用 Intel 编译器的第一步,因为它会在您的本地环境中设置一些重要的变量。
总而言之,IntelCC
生成器
读取您的配置文件
[settings]
和[conf]
。使用这些信息生成一个
conanintelsetvars.sh|bat
脚本,其中包含加载 Intelsetvars.sh|bat
脚本的命令。然后,您或选定的生成器将能够运行该脚本并使用任何 Intel 编译器来编译项目。
注意
您可以在调用 Intel 编译器构建项目之前启动conanintelsetvars.sh|bat
。在使用self.run
运行任何命令时,Conan 也会在 conanfile 的build(self)
方法中调用它。
首先,确保您正在使用类似于以下内容的配置文件
[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
可以在 conanfile 中按名称使用IntelCC
生成器
class Pkg(ConanFile):
generators = "IntelCC"
[generators]
IntelCC
它也可以在 conanfile 的generate()
方法中完全实例化
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]
条目即可应用不同的安装路径和命令参数。例如
[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 操作系统)将包含类似以下内容的内容
. "/opt/intel/oneapi/setvars.sh" --config="full/path/to/your/config.txt" --force
参考¶
- class IntelCC(conanfile)¶
管理 Intel oneAPI DPC++/C++/经典编译器变量生成的类
- arch¶
arch 设置
- property ms_toolset¶
根据选定的模式获取 Microsoft Visual Studio 工具集
- 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 将尝试自动查找它。tools.intel:setvars_args
: (可选) 用于将任何内容作为参数传递给我们的setvars.sh|bat 文件。您可以从 Intel 官方文档中查看所有可能的参数。