Я пытаюсь получить вывод git describe
в мою сборку в качестве определения препроцессора для использования в версиях модулей.К сожалению, это немного противоречит (не уверен, где проблема).
У меня было событие перед сборкой, например:
for /f "delims=" %a in ('git describe') do set GITID=%a
, которое работает из командной строки, но вернул код255 в сборке (что вызвало ошибку).Поэтому я изменил его на:
git describe > buildprops_gitid.txt
set /p GITID= < buildprops_gitid.txt
, который снова работает в командной строке (и не выдает ошибку при сборке).Файл создается с правильным значением.
В настройках препроцессора у меня затем:
BUILD_TARGETFILE=$(TargetFileName)
BUILD_GITID=$(GITID)
Первый работает нормально, помещая целевое имя файла в файл, как и ожидалось.Последний не работает, вместо этого ставит пустую строку.Я подозреваю, что это связано с тем, что env var теряется где-то по пути.
Есть ли способ получить выходные данные программ CLI и использовать их в качестве переменных ($(var)
) в Visual Studio?