conan.tools.intel¶
IntelCC¶
这个工具帮助你管理新的 Intel oneAPI DPC++/C++ 和 Classic 生态系统在 Conan 中。
警告
这个生成器是实验性的,可能会发生破坏性更改。
警告
macOS 不支持 Intel oneAPI DPC++/C++ (icx/icpx 或 dpcpp) 编译器。对于 macOS 或 Xcode 支持,你必须使用 Intel C++ Classic 编译器。
注意
请记住,你需要预先安装 Intel oneAPI 软件。
这个生成器会创建一个 conanintelsetvars.sh|bat 脚本,它包装了 Intel 脚本 setvars.sh|bat,该脚本设置 Intel oneAPI 环境变量,这是开始使用 Intel 编译器的第一步,因为它正在你的本地环境中设置一些重要的变量。
注意
如果你显式地设置 tools.intel:installation_path="" 配置(空字符串),Conan 将**不会生成** conanintelsetvars 脚本。在这种情况下,预计你已经手动激活了 Intel oneAPI 环境。
总而言之,IntelCC 生成器
读取你的 profile
[settings]和[conf]。使用这些信息生成一个
conanintelsetvars.sh|bat脚本,其中包含加载 Intelsetvars.sh|bat脚本的命令。然后,你或所选的生成器将能够运行该脚本并使用任何 Intel 编译器来编译项目。
注意
你可以在调用你的 intel 编译器构建项目之前启动 conanintelsetvars.sh|bat。Conan 也会在 conanfile 的 build(self) 方法中,在运行任何使用 self.run 的命令时调用它。
首先,确保你正在使用像这样的 *profile*
[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
IntelCC 生成器可以通过名称在 conanfile 中使用
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 OS)将包含如下内容
. "/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 工具集
- 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 官方文档中的所有可能参数。