Eclipse C Project Override Создать команду с командной цепочкой - PullRequest
1 голос
/ 02 апреля 2012

Работая под Linux для нашей разработки, у меня есть проект Eclipse Makefile C, и я пытаюсь переопределить команду make с помощью этого, чтобы мой собственный скрипт запускался перед make для настройки дополнительных переменных (проще сохранить один скрипт в синхронизации, чем переопределение нескольких отдельных переменных env проекта все время)

Создать команду: ./setenv.sh && make

Содержимое скрипта для тестирования

#!/bin/sh
echo "setenv.sh"

При запуске этого в Eclipse (сборочный проект) я вижу вывод скрипта, но, кажется, никогда не вызывается make после завершения скрипта. Возможно, я что-то упускаю, и скрипт требует какого-то возвращаемого значения, и после его запуска он возвращает «ложь», и цепочка не продолжается, но я не смог ничего найти в Интернете в своих поисках, как заставить это работать .

Примечание: это на Eclipse 3.5 Galileo

Спасибо

1 Ответ

0 голосов
/ 02 апреля 2012

Вероятно, это связано с тем, что ./setenv.sh && make является командой оболочки и для ее правильного выполнения требуется интерпретатор.

Я бы посоветовал вам установить команду Make на:

sh -c './setenv.sh && make'

UPD.

Для того, чтобы получить также готовые цели, можно использовать $0 и $@, предоставляемые оболочкой:

sh -c './setenv.sh && $0 $@' make

Из Руководство по bash :

-c строка

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

То есть после того, как Eclipse добавит аргументы к этой команде, она будет выглядеть следующим образом:

sh -c './setenv.sh && $0 $@' make targets...

Оболочка заменяет $0 на make и $@ на остальные переданные аргументы (если есть), в приведенном выше примере они равны targets.... В конце концов, фактически выполненная команда:

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