Сохранение переменных среды в CMake - PullRequest
3 голосов
/ 13 октября 2010

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

У меня есть скрипт сборки CMake, который генерирует мои make-файлы, но я хотел бы иметь возможность генерировать make-файлы со ссылками на них в переменных окружения, чтобы сгенерированный make-файл можно было запускать так:

HEADERS=/somewhere/on/the/filesystem make

Возможно ли это с помощью CMake? В противном случае, есть ли способ получить то, что я имею после использования только CMake?

Ответы [ 4 ]

1 голос
/ 23 октября 2014

Это, похоже, сработало для меня:

set(${PROJECT_NAME}_PORT "$(TARGET_SERIAL_PORT)")

Это пример из реальной жизни, но я надеюсь, что он даст вам идею.Вы можете присвоить строку переменной, которая будет дословно скопирована в Makefile.

1 голос
/ 13 октября 2010

Вы должны посмотреть на add_custom_command , используя опции TARGET и PRE_LINK.

0 голосов
/ 23 июля 2012

Чтобы передать переменную среды для создания, вы можете:

CMAKE_POLICY(PUSH)
CMAKE_POLICY(SET CMP0005 NEW)
ADD_DEFINITIONS(-DHEADER=$ENV{HEADER})
CMAKE_POLICY(POP)

Заменить HEADER на любое имя вашей переменной.

Установка политики cmake CMP0005 предназначена для правильной генерации cmakeбежать за тобой.

0 голосов
/ 13 октября 2010

Вы можете использовать $ENV{VARIABLE}, чтобы получить значение переменной окружения, но оно будет оцениваться только во время запуска cmake, а не во время make.

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