aboutsummaryrefslogtreecommitdiff
path: root/thirdparty/ryml/api/python/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/ryml/api/python/Makefile')
-rw-r--r--thirdparty/ryml/api/python/Makefile94
1 files changed, 94 insertions, 0 deletions
diff --git a/thirdparty/ryml/api/python/Makefile b/thirdparty/ryml/api/python/Makefile
new file mode 100644
index 000000000..bdb5a6ffd
--- /dev/null
+++ b/thirdparty/ryml/api/python/Makefile
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+# SPDX-License-Identifier: MIT
+
+# Use bash even on Windows
+SHELL := /bin/bash
+
+# On Windows the activate script is stored in a different location.
+ACTIVATE_SCRIPT := venv/bin/activate
+ifeq ($(OS),Windows_NT)
+ACTIVATE_SCRIPT := venv/Scripts/activate
+endif
+
+# How to invoke python
+PYTHON := python
+# How to invoke pytest
+PYTEST := $(PYTHON) -m pytest -vvv
+
+ACTIVATE=[[ -e $(ACTIVATE_SCRIPT) ]] && source $(ACTIVATE_SCRIPT);
+
+.PHONY: clean
+clean:
+ rm -rf dist *.egg-info
+ rm -rf ../../build ../../.egg*
+ rm -rf ryml/*.so ryml/ryml.py ryml/include ryml/lib
+
+.PHONY: venv-clean
+venv-clean:
+ rm -rf venv
+
+
+$(ACTIVATE_SCRIPT): requirements.txt Makefile
+ make venv
+ @touch $(ACTIVATE_SCRIPT)
+
+.PHONY: venv
+venv:
+ virtualenv --python=python3 --always-copy venv
+ # Packaging tooling.
+ ${ACTIVATE} pip install -U pip
+ # Setup requirements.
+ ${ACTIVATE} pip install -v -r requirements.txt
+ ${ACTIVATE} pip install -v -e ../..
+ @${ACTIVATE} $(PYTHON) -c "from ryml.version import version as v; print('Installed version:', v)"
+
+.PHONY: build-sdist
+build-sdist: | $(ACTIVATE_SCRIPT)
+ ${ACTIVATE} (cd ../..; $(PYTHON) -m build --sdist --outdir $(PWD)/dist)
+
+
+.PHONY: build-wheel
+build-wheel: | $(ACTIVATE_SCRIPT)
+ rm -rf dist
+ $(MAKE) build-sdist
+ @ls -l dist/*.tar.gz
+ ${ACTIVATE} pip wheel -v dist/*.tar.gz --wheel-dir $(PWD)/dist
+
+.PHONY: build
+build:
+ rm -rf build dist
+ $(MAKE) build-sdist
+ $(MAKE) build-wheel
+
+# PYPI_TEST = --repository-url https://test.pypi.org/legacy/
+PYPI_TEST = --repository testpypi
+
+.PHONY: upload-test
+upload-test: | $(ACTIVATE_SCRIPT)
+ make clean
+ make build-sdist
+ ${ACTIVATE} twine upload ${PYPI_TEST} dist/*
+
+.PHONY: upload
+upload: | $(ACTIVATE_SCRIPT)
+ make clean
+ make build-sdist
+ ${ACTIVATE} twine upload --verbose dist/*
+
+.PHONY: check
+check: | $(ACTIVATE_SCRIPT)
+ make clean
+ make build-wheel
+ ${ACTIVATE} twine check dist/*.whl
+
+.PHONY: install
+install: | $(ACTIVATE_SCRIPT)
+ ${ACTIVATE} $(PYTHON) setup.py install
+
+.PHONY: test
+test: | $(ACTIVATE_SCRIPT)
+ ${ACTIVATE} $(PYTEST) tests
+
+.PHONY: version
+version: | $(ACTIVATE_SCRIPT)
+ ${ACTIVATE} $(PYTHON) setup.py --version