2013-10-09 4 views
4

Прежде всего, я хотел бы сказать, что я новичок в возвышенном текстовом редакторе, и мне это нравится. У меня нет опыта работы с JSON, но это совсем не сложно.Sublime Text Build System с несколькими командами

Я пытаюсь написать систему сборки, которая вызовет скрипт bash, который переместит make-файл в каталог, в котором я работаю, и вызовите этот make-файл, который скомпилирует мой c-код с помощью avr-gcc, а затем запустит его подключенный микроконтроллер с использованием avrdude.

Я понимаю, что в возвышенном тексте 2 может быть только один объект «cmd», поэтому я попытался вызвать все на одной линии с эмулятора терминала, и он работал точно так, как я намеревался это сделать. Вызов был:

checkAVRmakefile.sh $PWD; make PROJECTNAME+=hello install 

мой сценарий находится в директории на моей переменной окружения $ PATH и я передаю это каталог, в котором я работаю в так он проверяет, есть для Makefile и если это не там он копирует это из каталога, который у меня есть, где я храню все свои файлы makefile. Затем я вызываю make и передаю ему имя I с проектом, который вызывается, и установка мигает микроконтроллером avr.

Что мне делать с возвышенным это:

{ 
"shell":true, 
"cmd":[ "checkAVRmakefile.sh", "$file_path", ";" ,"make","PROJECTNAME+=$file_base_name","install"], 
} 

Это только запускает скрипт Баша, который помещает Makefile в каталоге, но не запускается сделать.

Кто-нибудь видит, где я ошибся?

Любая помощь приветствуется. Я также задал вопрос, подобный этому, на возвышенных форумах, но никто не ответил. Также я на Ubuntu и использую ST2.

ответ

11

Я нашел свою проблему. Это была комбинация моего сценария bash, не обрабатывающего пробелы в именах моих каталогов, и я не использовал оболочку: истинный объект в системе сборки. Так что работает сейчас:

{ 
    "shell":true, 
    "cmd":["check.sh $file_path && make PROJECTNAME+=$file_base_name install"] 

} 

Кажется, что с оболочкой: истинный объект не нужен каждый вход в списке CMD, чтобы быть в кавычках, только одна длинная строка.

(благодаря ЕД/Scoo_ из Reddit, предложившего исправление) Надеюсь, что это помогает кто-то еще из

EDIT (17-3-2014): Я загрузил файлы, которые я использую для создания моих AVR проекты на мой мерзавец хаб: https://github.com/Jesse-Millwood/AVR-Stuffs.git

+0

Где храниться 'check.sh'? Я пытаюсь сделать то же самое, но он никогда не находит скрипт – Ozkan

+1

'check.sh' - это всего лишь сценарий оболочки, который я написал, чтобы проверить, находится ли файл make в каталоге или нет. Он довольно короткий и не очень сложный. Но это в папке my/home/jesse/bin, которую я убедился в моей $ PATH. Если файл make не находится в каталоге проекта, он копирует файл make, который у меня есть для проектов AVR, в каталог проекта. – Jesse

+0

Ozkan Я добавил ссылку на мою страницу hit hub, где у меня есть файлы, которые я использую для проектов AVR, если вам интересно – Jesse

0

Так что у меня есть эта другая установка Python на моей машине, которая мне нужна для различных целей, и мне нужно запустить .bat или .cmd в моем терминале для установки моего окружения переменные, прежде чем использовать этот аромат Python. Это нужно сделать, потому что в противном случае он импортирует другие модули с тем же именем из моей установки python по умолчанию c: \ Python27. Я немного вырыл в Интернете, и это то, что я смог придумать, чтобы запустить его из Sublime Text 2, когда я нажму Ctrl + B (build).

Я надеюсь, что кто-то посчитает это полезным. Это настраиваемый файл сборки, который исходит из Sublime, используя мой другой вкус. Вы можете создать новый файл сборки в Sublime, выбрав Tools> Build System> New Build System и вставьте его в него с любыми модами, которые вам нужны.

{ 
    "shell":true, 
    "cmd": ["C:\\GIT\\Folder1\\Folder1\\thebatch.cmd", "&;", 
     "python", "-u", "$file"], 
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
    "working_dir": "C:\\GIT\\GBmapper\\AWSInterfaces\\DEM_Processing" 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^