Что означает $ENV в CMake? Например:

set(BOOST_ROOT $ENV{HOME}/dev/cpp/thirdparty/boost)
0
ysbaekFox 18 Апр 2020 в 07:39

1 ответ

Лучший ответ

$ENV используется для получения значения переменной среды [1] .

В вашем примере $ENV{HOME} получит значение переменной среды $HOME. Допустим, $HOME имеет значение /home/wls. Запуск показанного фрагмента установит для переменной CMake BOOST_ROOT значение /home/wls/dev/cpp/thirdparty/boost.

$ENV не ограничивается использованием с $HOME. Вы можете использовать его для любой доступной переменной среды.

Обратите внимание, что есть ENV, который также используется с set(). Обратите внимание, что этот ENV не то же самое, что $ENV. ENV обычно используется в set() следующим образом:

set(ENV{<variable>} [<value>])

ENV в вышеупомянутом контексте используется для обозначения того, что переменная, значение которой вы устанавливаете, является переменной среды. Как сказано в документации для set() [2] , изменение переменной среды таким образом повлияет на результирующее значение последующих чтений этой переменной с использованием $ENV.

Ссылки:

4
Sean Francis N. Ballais 18 Апр 2020 в 05:09