У меня есть скрипт сборки Python, который я использую для создания ряда проектов, настроенных через CMake в Windows. Раньше мы использовали MSVC для сборки этих проектов, и все было нормально. Я хочу попытаться включить ICC в сборку сейчас с помощью этих скриптов Python. Я могу выбрать нативный компилятор прямо в 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)
где другие параметры устанавливаются с помощью переключателей командной строки (для x86generator
и 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")
также дает мне синтаксическую ошибку.
Итак, как я могу программно установить компилятор C/CXX из скрипта Python, вызывающего cmake?