LINUX.ORG.RU

Показ версии билда при запуске приложения?


0

0

Подскажите чего-нибудь такоео, чтобы при запуске программы показывался ее билд, и этот номер после каждой пересборки увеличивался автоматически. В идеале еще чтобы показывалось время сборки и имя машины, на которой это собиралось????? Что-то типа того, что есть в Дельфи - при каждой пересборке автоматом увеличивается номер/ Но надо такое для С++ проектов под Линукс

Теоретически это может выглядеть примерно так. В начале МАКЕ-файла стоит запуск программы, которая откуда-то берет счетчик билдов, увеличивает на +1 и сохраняет. Затем с этим номером генерит скажем хедер-файл для С++ Этот файл содержит в простейшем случае строку вида char *build_ver="0123\n"; он добавляется по #include в главный файл и в main() вывод?тся на экран

Хотелось бы не изобретать свое, а доработать и использовать готовое

Ответы просьба продублировать на е-мейл sokratus@mail.ru

anonymous

Критичен именно номер сборки или номер версии? Если все-таки номер версии, то в CVS есть такая фича - info cvs на предмет Builtin Keywords.
Там можно сделать так, что cvs сама будет подставлять в нужном месте
сведения об авторе, дате, версии и т.д.
Напр:

`$Author$'
The login name of the user who checked in the revision.
`$Date$'
The date and time (UTC) the revision was checked in.
`$Revision$'
The revision number assigned to the revision.

Может быть нужно именно это?

anonymous
()

Во: проверил - точно работает:
#include <iostream>
using namespace std;

int main(){
cout << "Автор программы: $Author$" <<endl
<< "Версия: $Revision$" << endl
<< "Дата: $Date$" << endl;
return 0;
}

после первого же чекаута получаем:

#include <iostream>
using namespace std;

int main(){
cout << "Автор программы: $Author: gri $" <<endl
<< "Версия: $Revision: 1.1.1.1 $" << endl
<< "Дата: $Date: 2003/08/29 12:35:09 $" << endl;
return 0;
}


anonymous
()

Нужен именно номер билда

За ответ спасибо. Но часто не будешь в CVS и обратно проект класть.

Хотелось бы, чтобы один раз взял, а при каждом выполнении команды make номер б?лда увел?ч?лся на +1. К моменту сохраннения в CVS номер ббилда таким образом может увеличиться на несколько десятков.

anonymous
()
Ответ на: Нужен именно номер билда от anonymous

>Хотелось бы, чтобы один раз взял, а при каждом выполнении команды >make номер б?лда увел?ч?лся на +1. К моменту сохраннения в CVS >номер ббилда таким образом может увеличиться на несколько >десятков.

Ну а в чем проблема то ?

Пиши соответствующий кусок в make

BTW: __DATA__ и __TIME__ не годятся для идентефикации ?


sS ★★★★★
()

Ты хочешь неправильного.

"Номер билда" -- это не счётчик того, сколько раз ты нажал кнопку Build или запустил make в процессе отладки. Это счётчик того, сколько раз прошла централизованная сборка из VCS.

Делается это обычно очень просто: заводим некий файл (build.h, например) на который делаем check-out при каждой сборке, увеличиваем внутри счётчик, после чего, если билд был успешным, делаем check-in.
В результате каждый успешный билд получает уникальный номер.

$Revision$ же не годится совершенно, т.к. показывает версию _файла_. А версия файла может сильно отстать от версии билда.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.