我有一个 python 构建脚本,用于构建许多通过 Windows 上的 CMake 配置的项目。以前,我们使用MSVC来构建这些项目,一切都很好。我现在想尝试通过这些 python 脚本将 ICC 合并到构建中。如有必要,我可以直接在 UI 中选择本机编译器,但我宁愿以编程方式完成所有操作。
问题是,它因语法错误而失败,或者只是不注意 cmake 选项。
我可以设置:
"CMAKE_CXX_COMPILER:PATH":"C:/Program Files (x86)/Intel/Composer XE 2013/bin/intel64/icl.exe",
"CMAKE_C_COMPILER:PATH":"C:/Program Files (x86)/Intel/Composer XE 2013/bin/intel64/icl.exe"
这是一个cmakeItems
数组的一部分,然后输入到一代中:
generate(x86Generator, cmakeItems, osName, buildTarget)
其中其他选项通过命令行开关(forx86generator
和buildTarget
)或默认设置(即,osName
在脚本本身中检测到)。
在尝试任何事情之前,我从我运行过的命令行提示符运行它
iclvars intel64
在 icc bin 目录中以确保所有 icc 变量都已正确配置,我可以icl
在命令行上键入并确认它在路径中。
运行上述意味着 C 编译器仍然是默认的 msvc 编译器。
我也试过运行:
set(CMAKE_C_COMPILER_INIT icl)
set(CMAKE_CXX_COMPILER_INIT icl)
但这给了我 icl 部分的语法错误。我认为这可能是一个路径问题,但是这样做:
set(CMAKE_C_COMPILER_INIT "C:\Program Files (x86)\Intel\Composer XE 2013\bin\intel64\icl")
set(CMAKE_CXX_COMPILER_INIT "C:\Program Files (x86)\Intel\Composer XE 2013\bin\intel64\icl")
也给了我一个语法错误。
那么如何通过调用 cmake 的 python 脚本以编程方式设置 C/CXX 编译器呢?