Счетчик количества билдов |
Здравствуйте, гость ( Вход | Регистрация )
Счетчик количества билдов |
iddqd |
1.2.2010, 10:04
Сообщение
#1
|
Студент Группа: Участник Сообщений: 32 Регистрация: 26.11.2009 Пользователь №: 1261 Спасибо сказали: 1 раз(а) Репутация: 0 |
Подскажите как лучше всего реализовать счетчик билдов? Допустим в одном из включаемых файлов я объявляю переменную
и теперь нужно, чтобы при каждой сборке проекта этот номер увеличивался на единичку. Возможно для QtCreator'a есть какой-нибудь плагин или такая возможность включается где-либо по-умолчанию? Если нет, то как удобнее всего организовать подобную вещь? |
|
|
CrackedMind |
1.2.2010, 11:38
Сообщение
#2
|
Студент Группа: Участник Сообщений: 44 Регистрация: 13.3.2009 Пользователь №: 611 Спасибо сказали: 7 раз(а) Репутация: 0 |
Написать скрипт небольшой который будет считывать файл, увеличивать билд на 1 и записывать обратно =) вызов команды можно записать в переменную QMAKE_POST_LINK
|
|
|
iddqd |
1.2.2010, 11:55
Сообщение
#3
|
Студент Группа: Участник Сообщений: 32 Регистрация: 26.11.2009 Пользователь №: 1261 Спасибо сказали: 1 раз(а) Репутация: 0 |
Спасибо за совет, сейчас поищу как это можно реализовать. Может у вас есть ссылки на что-то подобное?
|
|
|
SABROG |
1.2.2010, 11:59
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Написать скрипт небольшой который будет считывать файл, увеличивать билд на 1 и записывать обратно =) вызов команды можно записать в переменную QMAKE_POST_LINK Судя по совету, вы даже не пытались такое реализовать. Кроссплатформенно одними консольными командами такое не сделать (ограничение относится больше к windows). Вероятно придется написать консольную утилиту, которая будет автоматически собираться перед сборкой самого проекта, если не была собрана в прошлый раз. Она уже будет подготавливать всю почву, чтобы можно было работать с такой переменной из .pro файла. Или писать скрипт на Perl и вызывать уже его. |
|
|
iddqd |
1.2.2010, 12:15
Сообщение
#5
|
Студент Группа: Участник Сообщений: 32 Регистрация: 26.11.2009 Пользователь №: 1261 Спасибо сказали: 1 раз(а) Репутация: 0 |
SABROG, пожалуй вы правы, поиском вышел именно на вариант с использованием простенькой консольной утилиты, которая инкрементит номер версии и пишет его в файл. Небольшой пример описан в неофициальном блоге о Qt Creator. Вот ссылки на посты:
Может кто-нибудь ещё добавит примеров? |
|
|
CrackedMind |
1.2.2010, 12:32
Сообщение
#6
|
Студент Группа: Участник Сообщений: 44 Регистрация: 13.3.2009 Пользователь №: 611 Спасибо сказали: 7 раз(а) Репутация: 0 |
Цитата Судя по совету, вы даже не пытались такое реализовать. конечно не реализовывал. и python'ом я тоже не умею пользоваться. Сообщение отредактировал CrackedMind - 1.2.2010, 12:34 |
|
|
grio |
1.2.2010, 21:09
Сообщение
#7
|
Студент Группа: Участник Сообщений: 87 Регистрация: 11.11.2009 Пользователь №: 1221 Спасибо сказали: 6 раз(а) Репутация: 0 |
Зацепила меня идея счетчика билдов )
Под винды предлагаю такой механизм, в QtCreator'е Проекты >> этапы сборки >> добавить >> count.bat --------count.bat----------- @echo off if not exist count.### echo 0 >>count.### for /f %%i in (count.###) do ( set /a count = %%i + 1 ) echo %count% > count.### ------------------------------ А в самом проекте уже инклюдим count.###, который содержит только циферку с номером билда. |
|
|
grio |
2.2.2010, 20:18
Сообщение
#8
|
Студент Группа: Участник Сообщений: 87 Регистрация: 11.11.2009 Пользователь №: 1221 Спасибо сказали: 6 раз(а) Репутация: 0 |
В предыдущем посте не написал, как инклюдить номер билда в исходник.
Предлагаю 2 способа: Способ 1. Меняем батник. --------count.bat----------- @echo off if not exist count.inc echo #define BUILD_NUMBER 0 >>count.inc for /f "tokens=3" %%i in (count.inc) do ( set /a count = %%i + 1 ) echo #define BUILD_NUMBER %count% > count.inc ------------------------------ тогда в cpp файл просто инклюдим в начало:
Способ 2. Не меняя батник из предыдущего поста прописываем в cpp файле.
Еще несть нюанс. Что бы не зависимо от изменений в исходнике, содержащем инклюд вашего счетчика происходила перекомпиляция и обновление значения BUILD_NUMBER, надо добавить count.inc в .pro файл вашего проекта.
И лучше не использовать расширение файла .### Сообщение отредактировал grio - 2.2.2010, 22:25 |
|
|
kwisp |
3.2.2010, 14:46
Сообщение
#9
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
я уже как то заводил тему на счет счетчика сборок.
под винду остановился на том что вывожу в лог дату и время сборки, а так же тегами с cvs тащу текущую ревизию. касательно предложенных выше способов вопрос. как отработает счетчик если сборка неудачная? |
|
|
grio |
3.2.2010, 18:43
Сообщение
#10
|
Студент Группа: Участник Сообщений: 87 Регистрация: 11.11.2009 Пользователь №: 1221 Спасибо сказали: 6 раз(а) Репутация: 0 |
я уже как то заводил тему на счет счетчика сборок. под винду остановился на том что вывожу в лог дату и время сборки, а так же тегами с cvs тащу текущую ревизию. касательно предложенных выше способов вопрос. как отработает счетчик если сборка неудачная? В моем варианте считаются все попытки компиляции, и удачные и не очень. ) Время и дату можно брать из переменных препроцессора __DATE__ и __TIME__ Я даже натыкался в и-нете на код, где дату от препроцессора конвертируют в int. Но это не порядковый номер билда, в любом случае. Сейчас буду выбирать Систему Управления Версиями для своих проектов, тогда номер билда уже оттуда буду читать. А для небольших поделок или как времянка, вполне подходит этот вариант с батником. Потому что прикрутить и настроить все реально за 2 минуты. |
|
|
Текстовая версия | Сейчас: 30.11.2024, 1:40 |