Включить переменные компилятора Intel в make-файл CMake - PullRequest
1 голос
/ 14 февраля 2012

Я использую CMake 2.8.6 и новейший Intel C ++ Compiler для программы, скомпилированной для Linux, MacOSX и Windows. Для разработки я использую Eclipse с CDT для Linux и MacOSX.

До недавнего времени я использовал CMake для создания обычных Makefile, которые я запускал из консоли. Чтобы иметь рабочую среду, компилятор Intel поставляется с сценарием оболочки под названием iccvars.sh, который может быть source d, чтобы установить все необходимые пути включения и библиотеки.

Теперь я решил дать системе сборки Eclipse-CDT шанс и использовал генератор CMake "Eclipse CDT4 - Unix Makefiles" для создания файла проекта Eclipse. В Linux все работает нормально, но в OSX Eclipse не знает о переменных среды, поэтому пути типа DYLD_LIBRARY_PATH отсутствуют, а компиляция останавливается, поскольку библиотеки не найдены.

Обновление

Позвольте мне объяснить более подробно, что я делаю. Я бегу

cmake -G "Eclipse CDT4 - Unix Makefiles" path/to/src

из терминала, где было выполнено source iccvars.sh, и все переменные среды установлены правильно. Если бы я создал там обычный Makefile и запустил бы make, компиляция была бы успешной. Это связано с тем, что DYLIB_LIBRARY_PATH (в Linux LD_LIBRARY_PATH) установлен правильно, и мне не нужно указывать -L/path/to/libs в качестве опции для компилятора.

Но вместо этого я запускаю Eclipse и импортирую созданный .project, который работает нормально. Проблема в том, что Eclipse не знает о моей среде в консоли и, следовательно, не может найти необходимые библиотеки. Одним из решений будет использование find_library внутри CMakeLists.txt и поиск каждой необходимой библиотеки, потому что тогда полный путь должен быть включен в созданные файлы Makefile. Вместо этого мне было интересно, будет ли ...

Вопрос: Есть ли способ добавить iccvars.sh в мой CMakeLists.txt , чтобы пути были доступны, даже когда я не в своей обычной терминальной среде ? Есть ли другие возможности?

Обратите внимание , что я знаю, что вы можете устанавливать переменные окружения для GUI-программ под OSX. Что вам нужно сделать, это создать файл environment.plist в вашем доме под ~/.MacOSX. В этот xml-файл вы помещаете все переменные, которые должна иметь программа с графическим интерфейсом. Это отлично работает для других приложений, но особенно Eclipse-builder, похоже, игнорирует это.

...