mirror of
https://git.proxmox.com/git/pve-esxi-import-tools
synced 2025-04-28 12:14:40 +00:00

This commit adds mypy [0] as build dependency and ensures it is invoked during the package build process. mypy can also be manually invoked via `make lint`. A mypy.ini file [1] is also added to disable errors regarding missing type stubs for pyVmomi and pyVim. [0]: https://www.mypy-lang.org/ [1]: https://mypy.readthedocs.io/en/stable/config_file.html Signed-off-by: Max Carrara <m.carrara@proxmox.com>
109 lines
2.5 KiB
Makefile
109 lines
2.5 KiB
Makefile
include /usr/share/dpkg/default.mk
|
|
|
|
DESTDIR=
|
|
PREFIX = /usr
|
|
LIBEXECDIR = $(PREFIX)/libexec
|
|
DATAROOTDIR = $(PREFIX)/share
|
|
|
|
PACKAGE := pve-esxi-import-tools
|
|
ARCH := $(DEB_BUILD_ARCH)
|
|
|
|
# build in separate directory but output resulting package artefacts top-level by default
|
|
# allow to override by passing OUTPUT_DIR explicitly, e.g.: make OUTPUT_DIR=build/ deb
|
|
OUTPUT_DIR :=
|
|
BUILD_DIR := $(OUTPUT_DIR)$(PACKAGE)-$(DEB_VERSION)
|
|
|
|
ifeq ($(BUILD_MODE), release)
|
|
CARGO_BUILD_ARGS += --release
|
|
COMPILEDIR := target/release
|
|
else
|
|
COMPILEDIR := target/debug
|
|
endif
|
|
|
|
DEB=$(PACKAGE)_$(DEB_VERSION)_$(ARCH).deb
|
|
DEB_DBGSYM=$(PACKAGE)-dbgsym_$(DEB_VERSION)_$(ARCH).deb
|
|
DSC=$(PACKAGE)_$(DEB_VERSION).dsc
|
|
|
|
BINARY = $(COMPILEDIR)/esxi-folder-fuse
|
|
SCRIPT = listvms.py
|
|
|
|
CARGO ?= cargo
|
|
MYPY ?= mypy
|
|
|
|
.PHONY: all
|
|
all: $(BINARY)
|
|
|
|
$(BINARY):
|
|
$(CARGO) build $(CARGO_BUILD_ARGS)
|
|
|
|
.PHONY: check test
|
|
check: test
|
|
test:
|
|
$(CARGO) test $(CARGO_BUILD_ARGS)
|
|
|
|
.lint-incremental: $(SCRIPT)
|
|
$(MYPY) $?
|
|
touch "$@"
|
|
|
|
.PHONY: lint
|
|
lint: $(SCRIPT)
|
|
$(MYPY) $(SCRIPT)
|
|
touch ".lint-incremental"
|
|
|
|
.PHONY: install
|
|
install: $(BINARY) $(SCRIPT) .lint-incremental
|
|
install -m755 -d $(DESTDIR)$(LIBEXECDIR)/pve-esxi-import-tools
|
|
install -m755 -t $(DESTDIR)$(LIBEXECDIR)/pve-esxi-import-tools $(BINARY)
|
|
install -m755 -t $(DESTDIR)$(LIBEXECDIR)/pve-esxi-import-tools $(SCRIPT)
|
|
|
|
build-dir:
|
|
|
|
$(BUILD_DIR):
|
|
rm -rf $@ $@.tmp
|
|
mkdir -p $@.tmp
|
|
echo system >$@.tmp/rust-toolchain
|
|
cp -t $@.tmp -a \
|
|
debian \
|
|
Makefile \
|
|
mypy.ini \
|
|
listvms.py \
|
|
Cargo.toml \
|
|
src
|
|
rm -f $@.tmp/Cargo.lock
|
|
mv $@.tmp $@
|
|
|
|
.PHONY: deb
|
|
deb:
|
|
rm -rf $(BUILD_DIR)
|
|
$(MAKE) $(OUTPUT_DIR)$(DEB)
|
|
|
|
$(OUTPUT_DIR)$(DEB_DBGSYM): $(OUTPUT_DIR)$(DEB)
|
|
$(OUTPUT_DIR)$(DEB): $(BUILD_DIR)
|
|
cd $(BUILD_DIR) && dpkg-buildpackage -b -uc -us
|
|
lintian $@
|
|
|
|
.PHONY: dsc
|
|
dsc:
|
|
rm -rf $(BUILD_DIR)
|
|
$(MAKE) $(OUTPUT_DIR)$(DSC)
|
|
lintian $(OUTPUT_DIR)$(DSC)
|
|
|
|
$(OUTPUT_DIR)$(DSC): $(BUILD_DIR)
|
|
cd $(BUILD_DIR) && dpkg-buildpackage -S -uc -us
|
|
|
|
sbuild: $(OUTPUT_DIR)$(DSC)
|
|
[ -z "$(OUTPUT_DIR)" ] || cd $(OUTPUT_DIR); sbuild $(DSC)
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -rf $(BUILD_DIR) $(PACKAGE)-[0-9]*/
|
|
[ -z "$(OUTPUT_DIR)" ] || rm -rf $(OUTPUT_DIR)
|
|
rm -f *.deb *.dsc *.buildinfo *.build *.changes $(PACKAGE)*.tar*
|
|
$(CARGO) clean
|
|
|
|
.PHONY: upload
|
|
upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
|
|
upload: $(OUTPUT_DIR)$(DEB) $(OUTPUT_DIR)$(DEB_DBGSYM)
|
|
[ -z "$(OUTPUT_DIR)" ] || cd $(OUTPUT_DIR); \
|
|
tar cf - $(DEB) $(DEB_DBGSYM) | ssh -X repoman@repo.proxmox.com upload --product pve --dist $(UPLOAD_DIST)
|