в общем, воспользовался кодом, приведенным Alex Custov и lesav, плюс sed для мак ос, всё работает на ура, за что им большое спасибо.
но поскольку под виндой разработка ведётся в студии, а не в креаторе, то тут уже без внешнего скрипта не обошлось (может такого же эффекта, как и для .pro, можно достичь через ручное редактирование .vcxproj, но я в этом не силён). дефайны нужно лишь один раз прописать в свойствах проекта как для компиляции, так и для обработки ресурсов (сначала NVERX (X=1-4), а потом NVER_STRING), а потом, при обновлении версии, просто запускать незатейливый перл-скрипт с новой версией в качестве параметра, который обновит дефайны:
Perl
#!/usr/bin/perl -w
use strict;
use File::Slurp qw(edit_file); # File::Slurp надо установить из CPAN
die "new version wasn't passed" if scalar(@ARGV) == 0;
my $newVersion = shift;
my @versionNumbers = split /\./, $newVersion;
push @versionNumbers, (0) x (4 - scalar(@versionNumbers)); # добиваем номера нулями если они не указаны
my $newDefines = "NVER1=$versionNumbers[0];NVER2=$versionNumbers[1];NVER3=$versionNumbers[2];NVER4=$versionNumbers[3];NVER_STRING=\"$newVersion\";";
edit_file { s/NVER1=.+";/$newDefines/g } 'myproject.vcxproj'; # скрипт должен находиться в одной папке с .vcxproj
примеры запуска:
Bash
perl script.pl 0.1.2.3
perl script.pl 1.2