mirror of
https://github.com/ankitects/anki.git
synced 2025-11-15 17:17:11 -05:00
1. Documented on README.development how to setup the environment
for Windows.
2. Fixed qt/ts/package.json not working due usage of ; instead
of &&
3. Fixed copy-qt-files rsync using Windows paths instead of Unix
ones
4. Fixed Makefile's using Windows Linux Subsystem bash instead of
the Cygwin one.
5. Ensured running the correct pip module by using python -m pip
instead of just pip.
6. Fixed Makefiles using Windows `find` command, instead of the
Cygwin's one (POSIX find).
7. Fixed pyenv sourcing/activate using /pyevn/bin/ instead of
/python/Scripts/ on Windows.
8. Fixed pyaudio not installing/linking with portaudio on Windows
by installing for a patched fork at evandroforks/pyaudio
9. Forked and fixed portaudio not building with Visual Studio 2017
or superior and added the reference for the patched fork on
README.development at evandroforks/portaudio.
126 lines
2.7 KiB
Makefile
126 lines
2.7 KiB
Makefile
SHELL := /bin/bash
|
|
ECHOCMD := /bin/echo -e
|
|
FIND_EXEC := $(if $(wildcard /bin/find),,/usr)/bin/find
|
|
|
|
ifeq ($(OS),Windows_NT)
|
|
IS_WINDOWS := true
|
|
else
|
|
IS_WINDOWS :=
|
|
endif
|
|
|
|
.SHELLFLAGS := -eu -o pipefail -c
|
|
.DELETE_ON_ERROR:
|
|
MAKEFLAGS += --warn-undefined-variables
|
|
MAKEFLAGS += --no-builtin-rules
|
|
.SUFFIXES:
|
|
|
|
BLACKARGS := -t py36 aqt tests setup.py tools/*.py --exclude='aqt/forms|buildinfo|colors'
|
|
ISORTARGS := aqt tests setup.py
|
|
|
|
$(shell mkdir -p .build ../dist)
|
|
|
|
PHONY: all
|
|
all: check
|
|
|
|
.build/run-deps: setup.py
|
|
$(if ${IS_WINDOWS},python -m pip install git+https://github.com/evandroforks/pyaudio,)
|
|
python -m pip install -e .
|
|
@touch $@
|
|
|
|
.build/dev-deps: requirements.dev
|
|
python -m pip install -r requirements.dev
|
|
@touch $@
|
|
|
|
.build/ui: $(shell ${FIND_EXEC} designer -type f)
|
|
./tools/build_ui.sh
|
|
@touch $@
|
|
|
|
.build/i18n: $(wildcard i18n/po/desktop/*/anki.po)
|
|
(cd i18n && ./pull-git && ./build-mo-files && ./copy-qt-files)
|
|
@touch $@
|
|
|
|
TSDEPS := $(wildcard ts/src/*.ts) $(wildcard ts/scss/*.scss)
|
|
|
|
.build/js: $(TSDEPS)
|
|
(cd ts && npm i && npm run build)
|
|
python ./tools/extract_scss_colors.py
|
|
@touch $@
|
|
|
|
.build/hooks: tools/genhooks_gui.py ../pylib/tools/hookslib.py
|
|
python tools/genhooks_gui.py
|
|
black aqt/gui_hooks.py
|
|
@touch $@
|
|
|
|
BUILD_STEPS := .build/run-deps .build/dev-deps .build/js .build/ui aqt/buildinfo.py .build/hooks .build/i18n
|
|
|
|
# Checking
|
|
######################
|
|
|
|
.PHONY: check
|
|
check: $(BUILD_STEPS) .build/mypy .build/test .build/fmt .build/imports .build/lint .build/ts-fmt
|
|
|
|
.PHONY: fix
|
|
fix: $(BUILD_STEPS)
|
|
isort $(ISORTARGS)
|
|
black $(BLACKARGS)
|
|
(cd ts && npm run pretty)
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -rf .build aqt.egg-info build dist
|
|
|
|
# Checking Typescript
|
|
######################
|
|
|
|
JSDEPS := $(patsubst ts/src/%.ts, web/%.js, $(TSDEPS))
|
|
|
|
.build/ts-fmt: $(TSDEPS)
|
|
(cd ts && npm i && npm run check-pretty)
|
|
@touch $@
|
|
|
|
# Checking python
|
|
######################
|
|
|
|
PYLIB := ../pylib
|
|
|
|
CHECKDEPS := $(shell ${FIND_EXEC} aqt tests -name '*.py' | grep -v buildinfo.py)
|
|
|
|
.build/mypy: $(CHECKDEPS) .build/qt-stubs
|
|
mypy aqt
|
|
@touch $@
|
|
|
|
.build/test: $(CHECKDEPS)
|
|
python -m pytest -s
|
|
@touch $@
|
|
|
|
.build/lint: $(CHECKDEPS)
|
|
pylint -j 0 --rcfile=.pylintrc -f colorized --extension-pkg-whitelist=PyQt5,ankirspy aqt tests setup.py
|
|
@touch $@
|
|
|
|
.build/imports: $(CHECKDEPS)
|
|
isort $(ISORTARGS) --check
|
|
@touch $@
|
|
|
|
.build/fmt: $(CHECKDEPS)
|
|
black --check $(BLACKARGS)
|
|
@touch $@
|
|
|
|
.build/qt-stubs:
|
|
./tools/typecheck-setup.sh
|
|
@touch $@
|
|
|
|
# Building
|
|
######################
|
|
|
|
.PHONY: build
|
|
build: $(BUILD_STEPS)
|
|
rm -rf dist build
|
|
python setup.py -q bdist_wheel
|
|
rsync -a dist/*.whl ../dist/
|
|
|
|
.PHONY: develop
|
|
develop: $(BUILD_STEPS)
|
|
|
|
aqt/buildinfo.py: ../meta/version ../meta/buildhash
|
|
echo "buildhash='$$(cat ../meta/buildhash)'" > $@
|
|
echo "version='$$(cat ../meta/version)'" >> $@
|