2020-11-01 05:26:58 +01:00
|
|
|
# Mac
|
|
|
|
|
|
|
|
## Requirements
|
|
|
|
|
|
|
|
**Xcode**:
|
|
|
|
|
|
|
|
Install the latest XCode from the App Store. Open it at least once
|
|
|
|
so it installs the command line tools.
|
|
|
|
|
|
|
|
**Homebrew & Homebrew Deps**:
|
|
|
|
|
|
|
|
Install Homebrew from <https://brew.sh/>
|
|
|
|
|
|
|
|
Then install deps:
|
|
|
|
|
|
|
|
```
|
2020-11-18 04:22:51 +01:00
|
|
|
$ brew install rsync bazelisk
|
2020-11-01 05:26:58 +01:00
|
|
|
```
|
|
|
|
|
2021-10-04 07:05:15 +02:00
|
|
|
**Install Python 3.9**:
|
2020-11-01 05:26:58 +01:00
|
|
|
|
2021-10-04 07:05:15 +02:00
|
|
|
Install Python 3.9 from <https://python.org>. We have heard reports
|
2021-01-31 11:54:43 +01:00
|
|
|
of issues with pyenv and homebrew, so the package from python.org is
|
|
|
|
the only recommended approach.
|
2020-11-01 05:26:58 +01:00
|
|
|
|
2020-12-02 02:23:01 +01:00
|
|
|
Python 3.9 is not currently recommended, as pylint does not support it yet.
|
|
|
|
|
2020-11-01 05:26:58 +01:00
|
|
|
You do not need to set up a Python venv prior to building Anki.
|
|
|
|
|
|
|
|
When you run "python" in a shell, if it shows Python 2.x, you may get a
|
|
|
|
bunch of hashlib warnings during build. You can work around this by
|
2021-10-04 07:05:15 +02:00
|
|
|
pointing python to python3.9:
|
2020-11-01 05:26:58 +01:00
|
|
|
|
|
|
|
```
|
2021-10-04 07:05:15 +02:00
|
|
|
$ ln -sf /usr/local/bin/{python3.9,python}
|
2020-11-01 05:26:58 +01:00
|
|
|
```
|
|
|
|
|
2020-12-02 02:23:01 +01:00
|
|
|
This linking will not work if you're using the system Python from Big Sur,
|
|
|
|
which is one of the reasons why we recommend using Python from python.org.
|
|
|
|
|
2021-10-12 08:58:42 +02:00
|
|
|
But even so, if you still have a Python 2 binary on your system linked to
|
|
|
|
/usr/bin/python, it can happen that Bazel uses it and the build process
|
|
|
|
errors. In that case you might want to try forcing Bazel to use the
|
|
|
|
Python 3 binary by putting the following into a file called user.bazelrc at
|
|
|
|
the top of this repo (assuming /usr/local/bin/python links to your Python
|
|
|
|
3.9 binary).
|
|
|
|
|
|
|
|
```
|
|
|
|
build --action_env=PYO3_PYTHON=/usr/local/bin/python
|
|
|
|
```
|
|
|
|
|
2020-11-01 05:26:58 +01:00
|
|
|
## Running Anki during development
|
|
|
|
|
|
|
|
From the top level of Anki's source folder:
|
|
|
|
|
|
|
|
```
|
|
|
|
./run
|
|
|
|
```
|
|
|
|
|
|
|
|
This will build Anki and run it in place.
|
|
|
|
|
2020-12-02 02:23:01 +01:00
|
|
|
The first build will take a while, as it downloads and builds a bunch of
|
2020-11-01 05:26:58 +01:00
|
|
|
dependencies. When the build is complete, Anki will automatically start.
|
|
|
|
|
2021-06-21 05:23:03 +02:00
|
|
|
The Javascript build code is currently a bit flaky, so the initial
|
|
|
|
build may fail with an error. If you get an error when running/building,
|
|
|
|
try repeating the command once or twice - it should pick up where it left off.
|
|
|
|
|
2020-12-16 10:09:45 +01:00
|
|
|
To play audio, use Homebrew to install mpv and lame.
|
2020-11-01 05:26:58 +01:00
|
|
|
|
2020-12-07 02:50:03 +01:00
|
|
|
## Optimized builds
|
|
|
|
|
|
|
|
The `./run` command will create a non-optimized build by default. This is faster
|
|
|
|
to compile, but will mean Anki will run considerably slower.
|
|
|
|
|
|
|
|
To run Anki in optimized mode, use:
|
|
|
|
|
|
|
|
```
|
|
|
|
./scripts/runopt
|
|
|
|
```
|
|
|
|
|
2020-11-04 05:01:14 +01:00
|
|
|
## More
|
2020-11-01 05:26:58 +01:00
|
|
|
|
2020-11-04 05:01:14 +01:00
|
|
|
For info on running tests, building wheels and so on, please see [Development](./development.md).
|