CMake - передать переменную среды без расширения - PullRequest
2 голосов
/ 09 мая 2019

В CMake я делаю что-то вроде этого:

LINK_DIRECTORIES( $ENV{VARNAME}/lib )

Однако это расширит переменную среды, так что сгенерированный проект Visual Studio будет иметь жестко заданный путь, например:

C:/PathToWhereVarNamePointed/lib

Есть ли способ сделать вышеуказанный вызов, чтобы Visual Studio вместо этого закончил ниже?

$(VARNAME)/lib

1 Ответ

3 голосов
/ 10 мая 2019

Поскольку CMake 2.8.1 изменил способ интерпретации этого значения (относительный или абсолютный), в дополнение к экранированию доллара и паренов необходимо установить старую политику:

CMAKE_POLICY( SET CMP0015 OLD )
LINK_DIRECTORIES( 
    \$\(VARNAME\)/lib
)
CMAKE_POLICY( SET CMP0015 NEW )

Тогда это выглядит как: enter image description here В документации CMake говорится, что LINK_DIRECTORIES это " редко необходимо ".Вы уверены, что это правильный способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...