Добавить простую цель в созданный cmake make-файл - PullRequest
0 голосов
/ 09 апреля 2019

TL; DR: как заставить cmake вывести следующее правило в сгенерированный make-файл?

.PHONY: target-I-want
target-I-want:
  echo "Hello World"

Привет,

Я привык настраивать проекты с помощьюих собственные make-файлы для запуска любого типа скрипта, который может понадобиться.

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

Я создаю свой собственный make-файл с другим именем, скажем makefile.dev, но так как я не хочу запускать make -f makefile.dev target-I-want каждый раз, я подумал, что add_custom_target может помочьменя.

Так вот, что я добавил в свой CMakeLists.txt:

ADD_CUSTOM_TARGET(target-I-want
  COMMAND make -f ${CMAKE_CURRENT_SOURCE_DIR}/makefile.dev target-I-want
)

И это работает.НО, когда я запускаю его, мне нравится гораздо больше, чем просто запуск нужной команды (make -f ${CMAKE_CURRENT_SOURCE_DIR}/makefile.dev target-I-want), например проверка системы сборки cmake и прохождение множества автоматически сгенерированных целей.

Я хочузнать, есть ли способ добавить команду, которую я хочу, так же, как я ее написал, без лишних слов.

1 Ответ

1 голос
/ 11 апреля 2019

Я не видел ни одной команды для вставки произвольного текста в генерируемые Make-файлы.

На основе ваших комментариев вам нужно, чтобы CMake генерировал пользовательскую цель, которая также не включает использование CMake.сам исполняемый файл.Хотя регенерация Makefile и подробные сообщения о состоянии могут быть подавлены, пользовательская цель по-прежнему использует исполняемый файл CMake в общей структуре сгенерированных Make-файлов.

Если вы действительно не хотите вводить make -f makefile.dev target-I-want, тогда у вас будетчтобы найти альтернативный метод, такой как установка псевдонима или сценария, который вызывает команду, или добавить произвольный текст в Makefile верхнего уровня, сгенерированный CMake.

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