mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04: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.
100 lines
3.8 KiB
Text
100 lines
3.8 KiB
Text
For non-developers who want to try this development code, the easiest way is
|
|
to use a binary package - please see:
|
|
|
|
https://anki.tenderapp.com/discussions/beta-testing
|
|
|
|
You are welcome to run Anki from source instead, but it is expected that you
|
|
can sort out all dependencies and issues by yourself - we are not able to
|
|
provide support for problems you encounter when running from source.
|
|
|
|
To start, make sure you have the following installed:
|
|
|
|
- Python 3.7+
|
|
- portaudio
|
|
- mpv
|
|
- lame
|
|
- npm
|
|
- your platform's C compiler, eg gcc, Xcode or Visual Studio 2017.
|
|
- GNU make
|
|
- protoc v3 (https://github.com/protocolbuffers/protobuf/releases)
|
|
- rustup (https://rustup.rs/)
|
|
- gettext
|
|
- rename
|
|
- rsync
|
|
- perl
|
|
|
|
The build scripts assume a UNIX-like environment, so on Windows you will
|
|
need to use WSL or Cygwin to use them.
|
|
|
|
Once you've installed the above components, execute ./run in this repo,
|
|
which will build the subcomponents, and start Anki. Any arguments included
|
|
on the command line will be passed on to Anki.
|
|
|
|
Before contributing code, please read README.contributing.
|
|
|
|
If you'd like to contribute translations, please see the translations section
|
|
of http://ankisrs.net/docs/manual.html#_contributing
|
|
|
|
Subcomponents
|
|
--------------
|
|
|
|
- pylib contains a Python module (anki) with most of the non-GUI code.
|
|
- qt contains the Qt GUI implementation (aqt).
|
|
- rspy contains a Python module (ankirspy) for accessing the Rust code.
|
|
- rslib contains the parts of the code implemented in Rust. This
|
|
is only a tiny subsection at the moment.
|
|
- proto contains the interface used to communicate between different
|
|
languages.
|
|
- tslib and react are just an experiment at the moment.
|
|
|
|
Makefile
|
|
--------------
|
|
|
|
Use 'make check' to run unit tests, type checking and linting on all of the
|
|
subcomponents.
|
|
|
|
Use 'make fix' to fix any formatting issues that were found with 'make check'.
|
|
|
|
Use 'make build' to output Python wheels of the subcomponents into the dist/
|
|
folder.
|
|
|
|
Use 'make clean' to remove some generated files.
|
|
|
|
PyQt
|
|
-----
|
|
|
|
The build scripts will use PyQt/Qt from PyPI by default. If you wish to use a
|
|
system install, you will need to set up the pyenv folder yourself, making sure
|
|
you have PyQt5, the WebEngine module and development tools (eg pyqt5-dev-tools)
|
|
installed as well. You'll need to create the venv with --system-site-packages.
|
|
|
|
Mac users
|
|
----------
|
|
|
|
You can use homebrew to install some dependencies:
|
|
|
|
$ brew install python mpv lame portaudio protobuf npm rustup-init gettext rename
|
|
|
|
$ brew link gettext --force
|
|
|
|
Windows users
|
|
----------
|
|
|
|
1. Download and install Cygwin and put its `/bin/` directory on your system path.
|
|
1. Install the Cygwin Packages: `apt-cyg install gettext rsync make`
|
|
1. Move these files to `/bin/`
|
|
1. /usr/bin/msgfmt.exe
|
|
1. /usr/bin/cyggettextsrc-0-19-8-1.dll
|
|
1. /usr/bin/cyggettextlib-0-19-8-1.dll
|
|
1. Download and install Python for Windows (not from Cygwin) and put `python.exe` (not `python3.exe`) on your system path.
|
|
1. Download and install pip for your Windows Python.
|
|
1. Download and install rust (compiler), npm, git and put them your system path.
|
|
1. Download and install Visual Studio 2017 or superior and:
|
|
1. `git clone https://github.com/evandroforks/portaudio`
|
|
1. Open the file `portaudio\build\msvc\portaudio.sln` with Visual Studio
|
|
1. Select the Solution Configuration as `Release` and the Solution Platforms as `x64` on the top toolbar
|
|
1. Go to the menu `Build -> Build Solution`
|
|
1. Copy the file `portaudio\build\msvc\x64\Release\portaudio.lib` to `C:\Python\libs\` (Or whatever your Windows Python is installed)
|
|
1. Open a `cmd.exe` (command prompt) on the anki repository and run the command `sh run`
|
|
1. Do not `bash run` because it my call for Windows Subsystem fo Linux
|
|
1. Do not use any Cygwin terminal as `mintty.exe` because the `rust lang` compiler does not work with them
|