Russian Qt Forum

Программирование => С/C++ => Тема начата: juvf от Май 22, 2009, 09:58



Название: Как реализовать автонумерацию билда (сборки)?
Отправлено: juvf от Май 22, 2009, 09:58
Как реализовать автонумерацию билда (сборки) под Windows-ом? Хотелось бы из кода иметь доступ до номера билда.


Название: Re: Как реализовать автонумерацию билда (сборки)?
Отправлено: Rcus от Май 22, 2009, 10:39
google "cmake build number"


Название: Re: Как реализовать автонумерацию билда (сборки)?
Отправлено: juvf от Май 22, 2009, 13:02
google "cmake build number"

нашлось 7232 страницы и ни чего по делу. Может ищю криво? Есть у когонибудь конкретный пример или ссылка на конкретное решение задачи?


Название: Re: Как реализовать автонумерацию билда (сборки)?
Отправлено: lit-uriy от Май 22, 2009, 13:03
а у меня первая ссылка:
http://www.cmake.org/pipermail/cmake/2004-January/004638.html


Название: Re: Как реализовать автонумерацию билда (сборки)?
Отправлено: roman.ks от Июнь 11, 2009, 15:10
Чем собираете и какая ОС?


Название: Re: Как реализовать автонумерацию билда (сборки)?
Отправлено: SASA от Июнь 15, 2009, 18:16
http://www.prog.org.ru/topic_5495_0.html (http://www.prog.org.ru/topic_5495_0.html)
Может чё интересное найдёшь.


Название: Re: Как реализовать автонумерацию билда (сборки)?
Отправлено: nion_IV от Октябрь 29, 2010, 10:12
http://www.prog.org.ru/topic_5495_0.html (http://www.prog.org.ru/topic_5495_0.html)
Может чё интересное найдёшь.

Ну в той теме интересное решение с svn. А если нет svn? Или билды нужно чаще считать, чем комитишся. Я решил так:
создал в корне исходников файл build.h
Код:
#ifndef BUILD_H
#define BUILD_H
#define BUILD 1
#endif

создал батник autobuild.bat
Цитировать
echo off
set BUILD=0
SET P=%CD%
IF EXIST build.h (
   FOR /F "tokens=3 delims=, " %%i in (build.h) do set BUILD=%%i

)
set /a NEWBUILD=%BUILD%+1
echo #define BUILD %NEWBUILD% > build.h
echo build %BUILD%

добавляю #include build.h и в about достаю сборку
Цитировать
void MainWindow::about()
{
   QString translatedTextAboutQtCaption("<h3>My Programm  version 0.1.4<h3>");
   QString translatedTextAboutQtText;
   translatedTextAboutQtText = QMessageBox::tr(
      "<p>Build  %1</p>"
      "<p>text</p>"
      "<p>text</p>"
      ).arg(BUILD);
   QMessageBox *msgBox = new QMessageBox(this);
   msgBox->setText(translatedTextAboutQtCaption);
   msgBox->setInformativeText(translatedTextAboutQtText);
   //...
   msgBox->exec();
}

Теперь нужно вызвать autobuild.bat перед сборкой. В QtCreator-e в настройках проекта добавить этап сборки для релиза (а можно для любой сборки) autobuild.bat. В других IDE сделать подобную настройку сборки.


Название: Re: Как реализовать автонумерацию билда (сборки)?
Отправлено: ufna от Октябрь 29, 2010, 14:36
Считаю не верным запуск скрипта ПЕРЕД сборкой. Если сборка не удалась по причине ошибок, то зачем мы инкрементируем счетчик?

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