Как установить переменную среды PATH в скрипте CMake? - PullRequest
8 голосов
/ 28 сентября 2011

Я хочу собрать свои исходники с помощью компилятора Mingw, который не размещен в моей системной переменной PATH. Я попробовал это в начале моего сценария:

set(Env{PATH} "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/")

А это:

set(CMAKE_PROGRAM_PATH "c:/MyProject/Tools/mingw/bin/"   "c:/MyProject/Tools/mingw/msys/1.0/bin/")
set(CMAKE_LIBRARY_PATH "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/")
set(CMAKE_SYSTEM_PROGRAM_PATH "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/")
set(CMAKE_SYSTEM_PREFIX_PATH "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/")

Первый вариант вообще не работает. Предположение, что я не могу перезаписать значение переменной окружения в скрипте CMake. Второй скрипт находит мой компилятор mingw, но ловит ошибку при запуске gcc (не может найти libgmp-10.dll, которая нужна gcc). Это потому, что переменная PATH не установлена ​​для моего Mingw.

Ответы [ 3 ]

16 голосов
/ 05 августа 2014

CMAKE_SYSTEM_PROGRAM_PATH не предназначен для изменения, используйте

LIST(APPEND CMAKE_PROGRAM_PATH  "c:/MyProject/Tools/mingw/bin/" ...)
2 голосов
/ 30 сентября 2011

Вы можете подойти к нему так, как если бы он был кросс-компиляцией, даже если вы не осуществляете кросс-компиляцию из Linux в Windows, как в этом примере:

http://www.vtk.org/Wiki/CmakeMingw

После того, как выследуя этому руководству, вы устанавливаете набор инструментов mingw в командной строке при вызове cmake:

~/src/helloworld/ $ mkdir build
~/src/helloworld/ $ cd build
~/src/helloworld/build/ $ cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-mingw32.cmake

, тогда, если вы используете это много раз, вы можете сделать псевдоним, чтобы ограничить ввод в этот уродливый -D каждый разВы хотите восстановить файлы makefile:

alias mingw-cmake='cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-mingw32.cmake'
1 голос
/ 01 октября 2011

Напишите файл сценария для запуска CMake.

В Windows создайте командный файл:

@echo off
set path=c:\MyProject\Tools\mingw\bin;c:\MyProject\Tools\mingw\msys\1.0\bin
"C:\Program Files\CMake 2.8\bin\cmake-gui.exe"

В Linux создайте сценарий bash:

export PATH=$PATH:/your/path
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...