Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить

СОФТ: утилита автоинкремента версии

Пт июл 22, 2022 21:45:50

ознакмился с записью в блоге GoldenAndy https://goldenandy.blogspot.com/2022/01/version-autoincrement.html с одноименной темой, увидел, что автор не до конца решил проблему актуальной версии при компиляции с ошибками, и решил поправить беду собственными силами.

короче, сделал утилитку со следующим функционалом:

будучи добавленной в makefile или в настройки IDE на этапах pre-build step и post-build step, утилита обеспечивает наличие в указанном файле дефайна с автоинкрементируемой при каждой сборке проекта версией, причем в случае неудачной компиляции лишнего инкремента версии не происходит.


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

утилита работает в консоли, параметры командной строки следующие:
Код:
Usage:
   bvi.exe <header> [options]
where:
   header  - header file for version control
   options - nothing or any of this:
      -v <macro>   : macro for build version, default "_VER_"
      -s           : version as string (quoted)
      -q           : quitet mode (no any console output exclude errors)
      -c <comment> : user commentary (must be quoted), default "// Last build ver."
      -p           : post build step

Macro in header must be defined as "#define _VER_ 1.0.0"
Only last number after point (lowerest) automatically increased.

Just run this utilite at pre-build step without "-p" and at post-build step with "-p" and enjoy!

в переводе:
Код:
Применение:
   bvi.exe <заголовок> [параметры]
где:
   заголовок — заголовочный файл для контроля версий
   параметры - ничего или что-то из этого:
      -v <макрос> : макрос для версии сборки, по умолчанию "_VER_"
      -s : версия в виде строки (в кавычках)
      -q : тихий режим (нет никакого вывода в консоль, кроме ошибок)
      -c <комментарий> : комментарий пользователя (должен быть заключен в кавычки), по умолчанию "// Last build ver."
      -p : шаг после сборки

Макрос в заголовочном файле должен быть определен как "#define _VER_ 1.0.0"
Только последнее число после точки (самое младшее) автоматически увеличивается.

Просто запустите эту утилиту на этапе перед сборкой без опции "-p" и на этапе после сборки с опцией "-p" и наслаждайтесь!

к заголовочному файлу надо указывать полный путь. в большинстве IDE имеются встроенные "переменные", содержащие нужную информацию. например, в Eclipse использование утилитки в самом примитивном варианте выглядит так:
Изображение

то есть путь к проекту указывается переменной Eclipse ${ProjDirPath}, обратите внимание на слеш - он в стиле линуха, так Eclipse надо, но и в стиле винды с обратным тоже утилита справляется (но смешивать стили разделителя папок не советую). на скриншоте путь к утилите тоже указан полностью, но если прописать его в PATH, можно будет просто указывать bvi.exe

опции в командной строке могут следовать в любом порядке. единственная обязательная опция - это имя обрабатываемого файла (если он не существует на момент первого вызова утилиты, будет создан автоматический файл с заданным именем). если имя макроса для версии по умолчанию не устраивает, надо указать в командной строке (на обоих этапах!) нужное имя в параметре -v, например, так: bvi.exe ver.h -v VERSION

опция -s поместит номер версии в кавычки, без нее кавычек тоже не будет.

на этапе после компиляции не забудьте указать опцию -p - благодаря этому решается проблема с актуальностью версии при ошибке компиляции!

как-то так. если кому надо - пользуйтесь, скачать утилитку можно по ссылке из облака: https://cloud.mail.ru/public/ZTrr/qevho243w

P.S. если в путях/именах есть пробелы - заключайте их в двойные кавычки!

Добавлено after 3 minutes 30 seconds:
P.P.S. да, без параметров утилитка выводит подсказку - см. первую врезку "кода". хотя там написан пример версии с точками, утилита обработает и единственное число, сочтя его самым младшим. незначащие нули будут в том случае отброшены.
Вложения
bvi-eclipse.PNG
(28.25 KiB) Скачиваний: 154
Ответить