File: Makefile

package info (click to toggle)
mu-editor 1.2.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 13,492 kB
  • sloc: python: 33,326; makefile: 154; xml: 32; sh: 7
file content (138 lines) | stat: -rw-r--r-- 4,625 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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
XARGS := xargs -0 $(shell test $$(uname) = Linux && echo -r)
GREP_T_FLAG := $(shell test $$(uname) = Linux && echo -T)
export PYFLAKES_BUILTINS=_

all:
	@echo "\nThere is no default Makefile target right now. Try:\n"
	@echo "make run - run the local development version of Mu."
	@echo "make clean - reset the project and remove auto-generated assets."
	@echo "make flake8 - run the flake8 code checker."
	@echo "make test - run the test suite."
	@echo "make coverage - view a report on test coverage."
	@echo "make tidy - tidy code with the 'black' formatter."
	@echo "make check - run all the checkers and tests."
	@echo "make dist - make a dist/wheel for the project."
	@echo "make publish-test - publish the project to PyPI test instance."
	@echo "make publish-live - publish the project to PyPI production."
	@echo "make docs - run sphinx to create project documentation."
	@echo "make translate_begin LANG=xx_XX - create/update a mu.po file for translation."
	@echo "make translate_done LANG=xx_XX - compile translation strings in mu.po to mu.mo file."
	@echo "make translate_test LANG=xx_XX - run translate_done and launch Mu in the given LANG."
	@echo "make win32 - create a 32bit Windows installer for Mu."
	@echo "make win64 - create a 64bit Windows installer for Mu."
	@echo "make macos - create a macOS native application for Mu."
	@echo "make video - create an mp4 video representing code commits.\n"

clean:
	rm -rf build
	rm -rf dist
	rm -rf .coverage
	rm -rf .eggs
	rm -rf *.egg-info
	rm -rf docs/_build
	rm -rf .pytest_cache
	rm -rf lib
	rm -rf *.mp4
	rm -rf .git/avatar/*
	rm -rf venv-pup
	find . \( -name '*.py[co]' -o -name dropin.cache \) -delete
	find . \( -name '*.bak' -o -name dropin.cache \) -delete
	find . \( -name '*.tgz' -o -name dropin.cache \) -delete
	find . | grep -E "(__pycache__)" | xargs rm -rf
	rm -f ./mu/locale/messages.pot
	rm -f ./mu/wheels/*.zip

run: clean
ifeq ($(VIRTUAL_ENV),)
	@echo "\n\nCannot run Mu. Your Python virtualenv is not activated."
else
	python run.py
endif

flake8:
	@python make.py flake8

test: clean
	export LANG=en_GB.utf8
	pytest -v --random-order

coverage: clean
	export LANG=en_GB.utf8
	pytest -v --random-order --cov-config .coveragerc --cov-report term-missing --cov=mu tests/

tidy: 
	python make.py tidy

black:
	python make.py black

check: clean black flake8 coverage

dist: check
	@echo "\nChecks pass, good to package..."
	python setup.py sdist bdist_wheel

publish-test: dist
	@echo "\nPackaging complete... Uploading to PyPi..."
	twine upload -r test --sign dist/*

publish-live: dist
	@echo "\nPackaging complete... Uploading to PyPi..."
	twine upload --sign dist/*

docs:
	@python make.py docs
	@echo "\nDocumentation can be found here:"
	@echo file://`pwd`/docs/_build/html/index.html
	@echo "\n"

translate_begin:
	@python make.py translate_begin LANG=$(LANG)

translate_done:
	@python make.py translate_done LANG=$(LANG)

translate_test:
	@python make.py translate_test LANG=$(LANG)

win32: check
	@echo "\nBuilding 32bit Windows MSI installer."
	python make.py win32

win64: check
	@echo "\nBuilding 64bit Windows MSI installer."
	python make.py win64

macos: check
	@echo "\nFetching wheels."
	python -m mu.wheels --package
	@echo "\nPackaging Mu into a macOS native application."
	python -m virtualenv venv-pup
	# Don't activate venv-pup because:
	# 1. Not really needed.
	# 2. Previously active venv would be "gone" on venv-pup deactivation.
	./venv-pup/bin/pip install pup
	./venv-pup/bin/pup package --launch-module=mu --nice-name="Mu Editor" --icon-path=./package/icons/mac_icon.icns --license-path=./LICENSE .
	rm -r venv-pup
	ls -la ./build/pup/
	ls -la ./dist/

linux: check
	@echo "\nFetching wheels."
	python -m mu.wheels --package
	@echo "\nPackaging Mu into a Linux AppImage."
	python -m virtualenv venv-pup
	# Don't activate venv-pup because:
	# 1. Not really needed.
	# 2. Previously active venv would be "gone" on venv-pup deactivation.
	./venv-pup/bin/pip install pup
	./venv-pup/bin/pup package --launch-module=mu --nice-name="Mu Editor" --icon-path=./mu/resources/images/icon.png --license-path=./LICENSE .
	rm -r venv-pup
	ls -la ./build/pup/
	ls -la ./dist/

video: clean
	@echo "\nFetching contributor avatars."
	python utils/avatar.py
	@echo "\nMaking video of source commits."
	gource --user-image-dir .git/avatar/ --title "The Making of Mu" --logo docs/icon_small.png --font-size 24 --file-idle-time 0 --key -1280x720 -s 0.1 --auto-skip-seconds .1 --multi-sampling --stop-at-end --hide mouse,progress --output-ppm-stream - --output-framerate 30 | ffmpeg -y -r 30 -f image2pipe -vcodec ppm -i - -b 65536K movie.mp4