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