Anki/run
Damien Elmes 7ba32cce6d Migrate build system to uv
Closes #3787, and is a step towards #3081 and #4022

This change breaks our PyOxidizer bundling process. While we probably
could update it to work with the new venvs & lockfile, my intention
is to use this as a base to try out a uv-based packager/installer.

Still to do:
- move mpv distribution to a wheel
- build the new uv-based installer.

Some notes about the changes:

- Use uv for python download + venv installation
- Drop python/requirements* in favour of pyproject files / uv.lock
- Bumped to latest Python 3.9 version. The move to 3.13 should be
a fairly trivial change when we're ready.
- Dropped the old write_wheel.py in favour of uv/hatchling. This has
the unfortunate side-effect of dropping leading zeros in our wheels,
which we could try hack around in the future.
- Switch to Qt 6.7 for the dev repo, as it's the first PyQt version
with a Linux/ARM WebEngine wheel.
- Unified our macOS deployment target with minimum required for ARM.
- Dropped unused fluent python files
- Dropped unused python license generation
- Dropped helpers to run under Qt 5, as our wheels were already
requiring Qt 6 to install.
2025-06-16 19:20:12 +07:00

20 lines
749 B
Bash
Executable file

#!/bin/bash
set -e
export PYTHONWARNINGS=default
export PYTHONPYCACHEPREFIX=out/pycache
# define these as blank before calling the script if you want to disable them
export ANKIDEV=${ANKIDEV-1}
export QTWEBENGINE_REMOTE_DEBUGGING=${QTWEBENGINE_REMOTE_DEBUGGING-8080}
export QTWEBENGINE_CHROMIUM_FLAGS=${QTWEBENGINE_CHROMIUM_FLAGS---remote-allow-origins=http://localhost:$QTWEBENGINE_REMOTE_DEBUGGING}
export PYENV=${PYENV-out/pyenv}
# The pages can be accessed by, e.g. surfing to
# http://localhost:40000/_anki/pages/deckconfig.html
# Useful in conjunction with tools/web-watch for auto-rebuilding.
export ANKI_API_PORT=${ANKI_API_PORT-40000}
export ANKI_API_HOST=${ANKI_API_HOST-127.0.0.1}
./ninja pylib qt
${PYENV}/bin/python tools/run.py $*