SCons имеет Substfile
и Textfile
компоновщики для генерации файлов. Поэтому создайте функцию для расчета версии (используя pysvn или путем вызова команды svn
) и запишите ее вывод в файл, используя Substfile
(берет шаблон из файла) или Textfile
(просто пишет предоставляемый контент). Затем скомпилируйте и свяжите этот файл с остальной частью приложения.
Файл должен быть исходным файлом (, а не заголовок) с содержимым, подобным (при условии C / C ++, но тот же метод будет подходящим для любого языка):
char *VERSION = "X.Y.Z";
(и любые другие альтернативные форматы, которые вы хотите) и объявите
extern char *VERSION;
где-то, после чего будет перекомпилирован только один файл плюс перекомпоновано приложение (что в любом случае произойдет, потому что некоторые другие источники, вероятно, тоже изменились, верно).