forked from jpieper/pygazebo
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Makefile
76 lines (63 loc) · 2.01 KB
/
Makefile
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
.PHONY: clean-pyc clean-build docs
help:
@echo "update-gazebo - update message definitions from Gazebo"
@echo "clean-build - remove build artifacts"
@echo "clean-pyc - remove Python file artifacts"
@echo "lint - check style with flake8"
@echo "test - run tests quickly with the default Python"
@echo "testall - run tests on every Python version with tox"
@echo "coverage - check code coverage quickly with the default Python"
@echo "docs - generate Sphinx HTML documentation, including API docs"
@echo "release - package and upload a release"
@echo "sdist - package"
# Locate Gazebo header installation directory.
GAZEBO_INCLUDE_DIR := \
${shell pkg-config gazebo --cflags 2>/dev/null | \
perl -ne '/-I(\S*gazebo\S*).*$$/ and print $$1'}
update-gazebo:
if [ 'z${GAZEBO_INCLUDE_DIR}' = 'z' ]; then \
echo "Gazebo must be installed to update message definitions"; \
exit 1; \
fi
rm -rf pygazebo/msg/*_pb2.py
for definition in \
$$(find ${GAZEBO_INCLUDE_DIR}/gazebo/msgs/proto -name '*.proto'); \
do protoc -I ${GAZEBO_INCLUDE_DIR}/gazebo/msgs/proto \
--python_out=pygazebo/msg $$definition; \
cd pygazebo/msg; \
for file in *; \
do protoname=`echo ${file} | rev | cut -c4- | rev`; \
LC_ALL=C sed -i '' "s/import ${protoname}/from . import ${protoname}/g" *_pb2.py; \
done \
done
clean: clean-build clean-pyc
clean-build:
rm -fr build/
rm -fr dist/
rm -fr *.egg-info
clean-pyc:
find . -name '*.pyc' -exec rm -f {} +
find . -name '*.pyo' -exec rm -f {} +
find . -name '*~' -exec rm -f {} +
lint:
flake8 pygazebo tests --exclude msg
test:
python setup.py test
test-all:
tox
coverage:
coverage run --source pygazebo setup.py test
coverage report -m
coverage html
open htmlcov/index.html
docs:
python generate_msg_docs.py > docs/pygazebo.msg.rst
sphinx-apidoc -o docs/ pygazebo
$(MAKE) -C docs clean
$(MAKE) -C docs html
xdg-open docs/_build/html/index.html
release: clean
python setup.py sdist upload
sdist: clean
python setup.py sdist
ls -l dist