Искам да проверя дали GIT е инсталиран в Windows по време на изграждането ми процес и по-късно се обработват по отношение на това. И така, идеята беше
check_git:
git > gitcheck
GIT_PRESENT = $(shell type gitcheck)
ifeq ($(findstring recognized, $(GIT_PRESENT)), recognized)
#do nasty stuff
else
#do other stuff
endif
защото cmd.exe казва:
Git не се признава за вътрешна или външна команда, операционна програма или партиден файл.
ако Git не е инсталиран, и аз просто исках да проверя за "разпознати" ключова дума.
Разбира се, че не работи, защото разбрах, че трябва да проверя за изходния статус, който четох това нишка.
Използвам cs-make 3.81, затова генерирам файл първо. Аз осъзнавам, че вероятно "хубавият" начин да направите това не съществува ... Също така, аз съм сравнително нова към тези неща и това е първият ми пост, за да бъда нежен. Благодаря!
Отговори:
0 за отговор № 1аз вярвам GIT_PRESENT := $(shell git --help >nul 2>&1 & if %errorlevel% equ 0 ( echo GIT_PRESENT )
ще настрои GIT_PRESENT
променлива към "GIT_PRESENT", когато се намери git (в% PATH% по подразбиране, използвайте изричен път в обаждането, ако не е в% PATH%).
0 за отговор № 2
Добре, така че ето какво направих със щедрата помощ от Етан:
GIT_PRESENT := $(findstring Git, $(subst ,$(space),$(shell echo %path%)))
ifeq ($(GIT_PRESENT),Git)
git_info = Git detected!
ver_num = $(lastword $(shell git tag))
# and more nasty business...
else
git_info = Git not detected! Values below set to default.
ver_num := 0.00.000
# and even more nasty business...
endif
Разбира се, Git трябва да бъде включен в% path%, но все пак това е предпоставка за Git да работи от Windows cmd.exe