xamarin-macios/tests/common/shared-dotnet.mk

69 строки
2.2 KiB
Makefile

include $(TOP)/Make.config
include $(TOP)/mk/colors.mk
unexport MSBUILD_EXE_PATH
BINLOG_TIMESTAMP:=$(shell date +%Y-%m-%d-%H%M%S)
ifeq ($(TESTNAME),)
TESTNAME:=$(notdir $(shell dirname "$(shell dirname "$(CURDIR)")"))
endif
ifeq ($(CONFIG),)
CONFIG=Debug
else
CONFIG_ARGUMENT=/p:Configuration=$(CONFIG)
endif
prepare:
@# nothing to do here right now
reload:
$(Q) $(MAKE) -C $(TOP) -j8 all
$(Q) $(MAKE) -C $(TOP) -j8 install
$(Q) git clean -xfdq
$(Q) $(DOTNET) build-server shutdown # make sure msbuild picks up any new task assemblies we built
reload-and-build:
$(Q) $(MAKE) reload
$(Q) $(MAKE) build
reload-and-run:
$(Q) $(MAKE) reload
$(Q) $(MAKE) run
build: prepare
$(Q) $(DOTNET) build "/bl:$(abspath $@-$(BINLOG_TIMESTAMP).binlog)" *.?sproj $(MSBUILD_VERBOSITY) $(BUILD_ARGUMENTS) $(CONFIG_ARGUMENT)
run: prepare
$(Q) $(DOTNET) build "/bl:$(abspath $@-$(BINLOG_TIMESTAMP).binlog)" *.?sproj $(MSBUILD_VERBOSITY) $(BUILD_ARGUMENTS) $(CONFIG_ARGUMENT) -t:Run
run-bare:
$(Q) "$(abspath .)"/bin/$(CONFIG)/$(DOTNET_TFM)-*/*/"$(TESTNAME)".app/Contents/MacOS/"$(TESTNAME)" --autostart --autoexit
run-remote:
$(Q) test -n "$(REMOTE_HOST)" || ( echo "Must specify the remote machine by setting the REMOTE_HOST environment variable"; exit 1 )
@echo "Copying the '$(TESTNAME)' test app to $(REMOTE_HOST)..."
rsync -avz ./bin/$(CONFIG)/$(DOTNET_TFM)-*/*/"$(TESTNAME)".app $(USER)@$(REMOTE_HOST):/tmp/test-run-remote-execution/
@echo "Killing any existing test executables ('$(TESTNAME)')"
ssh $(USER)@$(REMOTE_HOST) -- pkill -9 "$(TESTNAME)" || true
@echo "Executing '$(TESTNAME)' on $(REMOTE_HOST)..."
ssh $(USER)@$(REMOTE_HOST) -- /tmp/test-run-remote-execution/"$(TESTNAME)".app/Contents/MacOS/"$(TESTNAME)" --autostart --autoexit
delete-remote:
$(Q) test -n "$(REMOTE_HOST)" || ( echo "Must specify the remote machine by setting the REMOTE_HOST environment variable"; exit 1 )
ssh $(USER)@$(REMOTE_HOST) -- rm -rf /tmp/test-run-remote-execution/"$(TESTNAME)".app
BINLOGS:=$(wildcard *.binlog)
diag: prepare
$(Q) if [[ "$(words $(BINLOGS))" == "1" ]]; then \
$(DOTNET) build /v:diag $(BINLOGS); \
else \
echo "Choose your binlog to print:"; \
select binlog in $(BINLOGS); do $(DOTNET) build /v:diag $$binlog; break; done \
fi
clean:
rm -Rf bin obj *.binlog