реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> счётчик билдов, помогите прикрутить к проекту счётчик сборок
timex
сообщение Jan 23 2008, 15:57
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 27-04-05
Из: Воронеж
Пользователь №: 4 541



Привет всем.

есть WinAVR + AVRStudio

хочу прикрутиь к проекту счётчик билдов,
который тупо должен увеличиваться на 1 после каждого нажатия F7


подскажите как можно это сделать и можно ли вообще?


идея пока пришла только одна:
- есть файлик ver.h, состоящий из одной строчки:
#define build_number 0

- есть батничек, который после каждого запуска увеличивает число после "build_number " на 1.
- есть у компилера волшебный ключик, который перед компиляцией запускал бы этот батничик.

Вот последнего и не нашёл в документации на WinAVR (gcc.pdf)

Может есть другие варианты?

Сообщение отредактировал timex - Jan 23 2008, 15:59
Go to the top of the page
 
+Quote Post
klen
сообщение Jan 23 2008, 19:18
Сообщение #2


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(timex @ Jan 23 2008, 18:57) *
- есть у компилера волшебный ключик, который перед компиляцией запускал бы этот батничик.


а как этот ключик gcc называется? я тоже такого не видкл, наверно и не увижу.

gcc мучать не надо, в make-цель билда пропишите первой командой вызов этого батника(скрипта инкриментирующего нидер с значением номера)

я так и сделаю, пусть до кучи и это фича работает.
Go to the top of the page
 
+Quote Post
timex
сообщение Jan 24 2008, 09:21
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 27-04-05
Из: Воронеж
Пользователь №: 4 541



наличие такого ключика я только предположил. подумал, что неплохо было бы иметь такой... я его тож не нашёл )

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

Сообщение отредактировал timex - Jan 24 2008, 09:28
Go to the top of the page
 
+Quote Post
klen
сообщение Jan 24 2008, 11:10
Сообщение #4


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(timex @ Jan 24 2008, 12:21) *
наличие такого ключика я только предположил. подумал, что неплохо было бы иметь такой... я его тож не нашёл )

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


.. опять все сначала 07.gif ЧИТАТЬ КНИГИ И ДОКИ ПО make!

давай текст своего Makefile, и имя файла скрипта, потом разберешся если захочешь.
Go to the top of the page
 
+Quote Post
Harbour
сообщение Jan 25 2008, 06:39
Сообщение #5


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



Я делаю так :

...... 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)
...
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Jan 25 2008, 07:42
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(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 ... ?
Go to the top of the page
 
+Quote Post
Harbour
сообщение Jan 25 2008, 09:14
Сообщение #7


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



-i появилась относительно недавно (2001 год) - не у всех людей под вынь со старым sed'ом работает, короче дело вкуса или версии gnu shell утилит wink.gif
Go to the top of the page
 
+Quote Post
timex
сообщение Feb 1 2008, 12:47
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 27-04-05
Из: Воронеж
Пользователь №: 4 541



Цитата
ЧИТАТЬ КНИГИ И ДОКИ ПО make!


Всё-всё, пошёл читать "Программа управления компиляцией GNU make Версия 3.79"...


Harbour, это получается, что для увеличения числа в текстовом файлике version.h можно обойтись и без .bat-файла, одним лишь скриптовым языком программы make.exe, так? (да/нет) (если что - у меня версия "GNU Make 3.80")

Сообщение отредактировал timex - Feb 1 2008, 12:58
Go to the top of the page
 
+Quote Post
Harbour
сообщение Feb 2 2008, 06:18
Сообщение #9


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



Не совсем - так как я пользуюсь только gnu тулами, то мне лень было читать доку по make, посему использовал то что знал - sed, bash, echo и expr (последние могут быть встроенными в bash). Теоретически make позволяет увеличить переменную, а вот найти и поменять значение в исходнике врядли, т.е. одного make может нехватить. Цель incr у меня вызывается автоматически из цели changelog и закачивания проекта в git - очень удобственно, можно даже tag'и для git'а с этим билд-number генерить.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 10th July 2025 - 04:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01405 секунд с 7
ELECTRONIX ©2004-2016