Как заставить 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 << '\n';
}
Альтернативный вариант с использованием for /f
(так же в Pre-Build Event - Command Line)
for /f "delims=" %%a in ('"git rev-parse --short=12 HEAD"') do @echo #define GIT_HASH "%%a" > git_hash.h
Перед сборкой будет создаваться файл git_hash.h
содержащий строку:
#define GIT_HASH "325f66c2c290"
Использование:
#include <iostream>
#include "git_hash.h"
int main() {
std::cout << GIT_HASH << std::endl;
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Столкнулся со странными поведением JQ и хрома, а именно, в консоль выдает следующие ошибки:
Есть обработчикbind, обрабатывает от scroll, как выполнять другие функции если: скроллишь вверх, вниз или не скроллишь
пытаюсь добавить передаваемые данные при отправке формы пост собствено вот форма