Перейти к содержанию
    

как воткнуть дату билда в бинарник ?

дык классические __DATE__ __TIME__

https://gcc.gnu.org/onlinedocs/cpp/Standard...ned-Macros.html

 

только не забыть ребилдить всё, так как obj содержищий эти строки может не обновлятся, если правите другой файл

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кокос, gcc

 

gcc

struct version_s{
    uint16_t major;
    uint16_t minor;
    char      *bdate;
};

const version_t  version __section(._version) = {
        .major = V_MAJOR,
        .minor = V_MINOR,
        .bdate = __DATE__ " "  __TIME__ ,
};

 

Секцию прописать в скрипте загрузчика в нужном месте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так и как сделать это комильфо ?

при сборке позвать систему контроля версий и спросить у неё, какая сейчас ревизия.

Полученную ревизию, например, можно скормить компилятору через командную строку ключик -D.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для svn можно сделать:

http://stackoverflow.com/questions/16248/g...umber-into-code

а вот, например, гит не дает номер ревизии, но можно попробывать через метки (tags).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

при сборке позвать систему контроля версий и спросить у неё, какая сейчас ревизия.

Полученную ревизию, например, можно скормить компилятору через командную строку ключик -D.

 

А что, просто ревизию в основном файле прописать через дефайн?? Всегда так делал - просто и понятно, а всякие системы контроля версий и еще фиг знает чего, зачем? Вы ведь не свою собственную винду с нуля пишете :biggrin:

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а всякие системы контроля версий и еще фиг знает чего, зачем?

Как зачем? Для контроля версий, конечно. Оч. рекомендую, кстати. А ещё советую сверлить дырки в бетоне перфоратором, а не буравчиком :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как зачем? Для контроля версий, конечно. Оч. рекомендую, кстати.

 

И что это мне даст? Я и так прекрасно версии своих прог контролирую, без доп. приблуд :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И что это мне даст? Я и так прекрасно версии своих прог контролирую, без доп. приблуд :biggrin:

Хозяин - барин. Я без системы контроля версий уже сошёл бы с ума, причём не единожды. От числа и масштаба задач зависит, конечно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да это не беда, вот как вы поступаете, когда какой-то код нужно вынести в библиотеку ?

на большом компе проблем нет - вынес и если что поправил вызовы в сотне проектов

в самом худшем случае максимум комп перезагрузишь из-за изменений в библиотеке

а для мк ?

очень хочется иметь отдельный полный каталог на каждый проект, чтобы в случае косяков в библиотеке чего-нибудь в куда-нибудь физически не въехало

а как библиотеку править, что, её потом по всем проектам копировать ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И что это мне даст? Я и так прекрасно версии своих прог контролирую, без доп. приблуд :biggrin:

При очередной сборке забудете этот дефайн с ревизией поменять.

Мы написали скрипт, запускаемый в Prebuild, который получает с SVN-а ревизию и пишет её в хидер (в виде дефайна) подключаемый к проекту (с пересборкой всего проекта при его обновлении).

Также в этот хидер пишется дата/время, сетевое имя компа на котором делается сборка и виндовый логин юзера.

Это всё включается в выходной образ прошивки по фиксированному адресу вместе с CRC образа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для svn можно сделать:

http://stackoverflow.com/questions/16248/g...umber-into-code

а вот, например, гит не дает номер ревизии, но можно попробывать через метки (tags).

Можно и номер ревизии получить, только толку от него нет. С гитом стоит использовать хеш, можно сокращённый. Например так:

git log -1 --pretty=format:"#define FWVERHASH 0x%%h" > gitver.h

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...