anki/qt/Makefile
Damien Elmes 7dcbc7efec basic night mode support
Forces the Fusion theme when running night mode, so we don't need
to work around platform themes that don't respond to the defined
palette.

Feedback/suggestions on the chosen colours welcome - _vars.scss is the
file to change if you want to experiment with adjustments.
2020-01-23 17:27:07 +10:00

117 lines
2.4 KiB
Makefile

SHELL := bash
.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
pip install -e .
@touch $@
.build/dev-deps: requirements.dev
pip install -r requirements.dev
@touch $@
.build/ui: $(shell find designer -type f)
./tools/build_ui.sh
@touch $@
.build/i18n: $(wildcard i18n/translations/anki.pot/*)
(cd i18n && ./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 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)'" >> $@