4 ответов:
получение переменных в ваш скрипт CMake
вы можете передать переменную в строке с вызовом cmake:
FOO=1 cmakeили экспортируя переменную в BASH:
export FOO=1затем вы можете забрать его в сценарии cmake с помощью:
$ENV{FOO}
вы также можете вызвать cmake сам сделать это кросс-платформенным способом:
cmake -E env EnvironmentVariableName="Hello World" cmake ..
env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]...выполнить команду в измененной среде.
просто помните что это может работать только в первый раз. Если CMake повторно настраивается с одной из последовательных сборок (вы просто вызываете, например,
make, одноCMakeLists.txtбыл изменен, и CMake снова проходит через процесс генерации), определенный пользователем переменная окружения может больше не существовать (по сравнению с системными переменными окружения).поэтому я передаю эти пользовательские переменные среды в своих проектах в кэшированную переменную CMake:
cmake_minimum_required(VERSION 2.6) project(PrintEnv NONE) if (NOT "$ENV{EnvironmentVariableName}" STREQUAL "") set(EnvironmentVariableName "$ENV{EnvironmentVariableName}" CACHE INTERNAL "Copied from environment variable") endif() message("EnvironmentVariableName = ${EnvironmentVariableName}")ссылка
вам нужно экспортировать переменные. Так, например, в Linux:
export EnvironmentVariableName=fooНесообщенные переменные пусты в CMAKE.
переменные среды (которые вы изменяете с помощью системных свойств) распространяются только на дочерние ячейки при создании новой дочерней ячейки.
Если у вас была командная строка (DOS или cygwin) открыта при изменении пользователя env vars, то они не будут отображаться.
после изменения настроек пользователя необходимо открыть новую строку командной строки.
эквивалент в Unix / Linux добавляет строку к вашему .bash_rc: вам нужно запустить новую оболочку, чтобы получить ценности.
Comments