add documentation for installation, and other doc improvements
This commit is contained in:
parent
722f4df4aa
commit
dbd8a44fa2
1 changed files with 81 additions and 3 deletions
84
README.md
84
README.md
|
@ -9,6 +9,66 @@ The specification of the Olm ratchet can be found in [docs/olm.md](docs/olm.md).
|
||||||
This library also includes an implementation of the Megolm cryptographic
|
This library also includes an implementation of the Megolm cryptographic
|
||||||
ratchet, as specified in [docs/megolm.md](docs/megolm.md).
|
ratchet, as specified in [docs/megolm.md](docs/megolm.md).
|
||||||
|
|
||||||
|
## Installing
|
||||||
|
|
||||||
|
### Linux and other Unix-like systems
|
||||||
|
|
||||||
|
Your distribution may have pre-compiled packages available. If not, or if you
|
||||||
|
need a newer version, you will need to compile from source. See the "Building"
|
||||||
|
section below for more details.
|
||||||
|
|
||||||
|
### macOS
|
||||||
|
|
||||||
|
The easiest way to install on macOS is via Homebrew. If you do not have
|
||||||
|
Homebrew installed, follow the instructions at https://brew.sh/ to install it.
|
||||||
|
|
||||||
|
You can then install libolm by running
|
||||||
|
|
||||||
|
```bash
|
||||||
|
brew install libolm
|
||||||
|
```
|
||||||
|
|
||||||
|
If you also need the Python packages, you can run
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip3 install python-olm --global-option="build_ext" --global-option="--include-dirs="`brew --prefix libolm`"/include" --global-option="--library-dirs="`brew --prefix libolm`"/lib"
|
||||||
|
```
|
||||||
|
|
||||||
|
Note that this will install an older version of the Python bindings, which may
|
||||||
|
be missing some functions. If you need the latest version, you will need to
|
||||||
|
build from source.
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
You will need to build from source. See the "Building" section below for more
|
||||||
|
details.
|
||||||
|
|
||||||
|
### Bindings
|
||||||
|
|
||||||
|
#### JavaScript
|
||||||
|
|
||||||
|
You can use pre-built npm packages, available at
|
||||||
|
<https://gitlab.matrix.org/matrix-org/olm/-/packages?type=npm>.
|
||||||
|
|
||||||
|
#### Python
|
||||||
|
|
||||||
|
Pre-built packages for Python are available for certain architectures at
|
||||||
|
<https://gitlab.matrix.org/matrix-org/olm/-/packages?type=PyPI>. They can be
|
||||||
|
installed by running
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install python-olm --extra-index-url https://gitlab.matrix.org/api/v4/projects/27/packages/pypi/simple
|
||||||
|
```
|
||||||
|
|
||||||
|
Currently, we try to provide packages for all supported versions of Python on
|
||||||
|
x86-64, i686, and aarch64, but we cannot guarantee that packages for all
|
||||||
|
versions will be available on all architectures.
|
||||||
|
|
||||||
|
#### Android
|
||||||
|
|
||||||
|
Pre-built Android bindings are available at
|
||||||
|
<https://gitlab.matrix.org/matrix-org/olm/-/packages?type=Maven>.
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
To build olm as a shared library run:
|
To build olm as a shared library run:
|
||||||
|
@ -41,15 +101,29 @@ target_link_libraries(my_exe Olm::Olm)
|
||||||
|
|
||||||
### Bindings
|
### Bindings
|
||||||
|
|
||||||
To build the JavaScript bindings, install emscripten from https://emscripten.org/ and then run:
|
#### JavaScript
|
||||||
|
|
||||||
|
The recommended way to build the JavaScript bindings is using
|
||||||
|
[Nix](https://nixos.org/). With Nix, you can run
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nix build .\#javascript
|
||||||
|
```
|
||||||
|
|
||||||
|
to build the bindings.
|
||||||
|
|
||||||
|
If you do not have Nix you can, install emscripten from https://emscripten.org/
|
||||||
|
and then run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make js
|
make js
|
||||||
```
|
```
|
||||||
|
|
||||||
Note that if you run emscripten in a docker container, you need to pass through
|
Emscripten can also be run via Docker, in which case, you need to pass through
|
||||||
the EMCC_CLOSURE_ARGS environment variable.
|
the EMCC_CLOSURE_ARGS environment variable.
|
||||||
|
|
||||||
|
#### Android
|
||||||
|
|
||||||
To build the android project for Android bindings, run:
|
To build the android project for Android bindings, run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -57,6 +131,8 @@ cd android
|
||||||
./gradlew clean build
|
./gradlew clean build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Objective-C
|
||||||
|
|
||||||
To build the Xcode workspace for Objective-C bindings, run:
|
To build the Xcode workspace for Objective-C bindings, run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -65,7 +141,9 @@ pod install
|
||||||
open OLMKit.xcworkspace
|
open OLMKit.xcworkspace
|
||||||
```
|
```
|
||||||
|
|
||||||
To build the Python 3 bindings, first build olm as a shared library as above, and
|
#### Python
|
||||||
|
|
||||||
|
To build the Python 3 bindings, first build olm as a library as above, and
|
||||||
then run:
|
then run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
Loading…
Reference in a new issue