Полная версия этой страницы:
счётчик билдов
Привет всем.
есть WinAVR + AVRStudio
хочу прикрутиь к проекту счётчик билдов,
который тупо должен увеличиваться на 1 после каждого нажатия F7
подскажите как можно это сделать и можно ли вообще?
идея пока пришла только одна:
- есть файлик ver.h, состоящий из одной строчки:
#define build_number 0
- есть батничек, который после каждого запуска увеличивает число после "build_number " на 1.
- есть у компилера волшебный ключик, который перед компиляцией запускал бы этот батничик.
Вот последнего и не нашёл в документации на WinAVR (gcc.pdf)
Может есть другие варианты?
Цитата(timex @ Jan 23 2008, 18:57)

- есть у компилера волшебный ключик, который перед компиляцией запускал бы этот батничик.
а как этот ключик gcc называется? я тоже такого не видкл, наверно и не увижу.
gcc мучать не надо, в make-цель билда пропишите первой командой вызов этого батника(скрипта инкриментирующего нидер с значением номера)
я так и сделаю, пусть до кучи и это фича работает.
наличие такого ключика я только предположил. подумал, что неплохо было бы иметь такой... я его тож не нашёл )
а "make-цель" билда - это что? Имеется ввиду файл "Makefile" (без расширения)?
А тогда как ентот батник там прописать? какой синтаксис? можете пример привести (не самого батника, а только его "прописку")?
Цитата(timex @ Jan 24 2008, 12:21)

наличие такого ключика я только предположил. подумал, что неплохо было бы иметь такой... я его тож не нашёл )
а "make-цель" билда - это что? Имеется ввиду файл "Makefile" (без расширения)?
А тогда как ентот батник там прописать? какой синтаксис? можете пример привести (не самого батника, а только его "прописку")?
.. опять все сначала

ЧИТАТЬ КНИГИ И ДОКИ ПО make!
давай текст своего Makefile, и имя файла скрипта, потом разберешся если захочешь.
Harbour
Jan 25 2008, 06:39
Я делаю так :
...... version.h .........
#define PRJ_BUILD_NUMBER 37
........ Makefile ...
# build_number increment
VERSION_FILE = version.h
BUILD_NUMBER_DEFINE = PRJ_BUILD_NUMBER
BUILD_NUMBER := $(strip $(subst \#define,,$(subst $(BUILD_NUMBER_DEFINE),,$(shell grep "define $(BUILD_NUMBER_DEFINE)" $(VERSION_FILE)))))
...
# increment BUILD_NUMBER
incr increment:
@BLD=`expr $(BUILD_NUMBER) + 1`; \
echo "Incrementing to build number " $$BLD; \
sed "s/$(BUILD_NUMBER_DEFINE)[]*[0-9][0-9]*/$(BUILD_NUMBER_DEFINE)
$$BLD/" $(VERSION_FILE) > $(VERSION_FILE).new; \
mv -f $(VERSION_FILE).new $(VERSION_FILE)
...
andrew_b
Jan 25 2008, 07:42
Цитата(Harbour @ Jan 25 2008, 09:39)

sed "s/$(BUILD_NUMBER_DEFINE)[]*[0-9][0-9]*/$(BUILD_NUMBER_DEFINE)
$$BLD/" $(VERSION_FILE) > $(VERSION_FILE).new; \
mv -f $(VERSION_FILE).new $(VERSION_FILE)
sed -i ... ?
Harbour
Jan 25 2008, 09:14
-i появилась относительно недавно (2001 год) - не у всех людей под вынь со старым sed'ом работает, короче дело вкуса или версии gnu shell утилит
Цитата
ЧИТАТЬ КНИГИ И ДОКИ ПО make!
Всё-всё, пошёл читать "Программа управления компиляцией GNU make Версия 3.79"...
Harbour, это получается, что для увеличения числа в текстовом файлике version.h можно обойтись и без .bat-файла, одним лишь скриптовым языком программы make.exe, так? (да/нет) (если что - у меня версия "GNU Make 3.80")
Harbour
Feb 2 2008, 06:18
Не совсем - так как я пользуюсь только gnu тулами, то мне лень было читать доку по make, посему использовал то что знал - sed, bash, echo и expr (последние могут быть встроенными в bash). Теоретически make позволяет увеличить переменную, а вот найти и поменять значение в исходнике врядли, т.е. одного make может нехватить. Цель incr у меня вызывается автоматически из цели changelog и закачивания проекта в git - очень удобственно, можно даже tag'и для git'а с этим билд-number генерить.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.