File: Makefile

package info (click to toggle)
rapidyaml 0.10.0%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 53,676 kB
  • sloc: cpp: 73,851; python: 3,678; javascript: 414; xml: 253; makefile: 96; sh: 44
file content (93 lines) | stat: -rw-r--r-- 2,184 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# -*- 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 -s

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 ../..; pip show build)
	${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: build-sdist 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} pip install -v -e ../..
	${ACTIVATE} $(PYTEST) tests

.PHONY: version
version: | $(ACTIVATE_SCRIPT)
	${ACTIVATE} $(PYTHON) setup.py --version