Как заставить Visual Studio автоматом при сборке присваивать макросу GIT_HASH значение хеша git, без использования дополнительных утилит/установки поддержки дополнительных языков. Чтобы на чистой машине, с установленным Visual Studio и git можно было собрать такой код:
std::cout << "git hash: " << GIT_HASH << std::endl;
Ответ
Используйте Pre-Build Event, в нем выполняйте echo и git rev-parse:
echo | set /p _=#define GIT_HASH > rev.h
git rev-parse --short=12 HEAD >> rev.h
В свойствах проекта можно задать сразу несколько команд отдельными строчками.
Конструкция echo | set /p _= позволяет убрать перевод строки.
Пример использования rev.h :
#include "rev.h"
#define STRINGIFY_(x) #x
#define STRINGIFY(x) STRINGIFY_(x)
#define GIT_HASH_STR STRINGIFY(GIT_HASH)
int main() {
std::cout << GIT_HASH_STR << '
';
}
Комментариев нет:
Отправить комментарий