| Crates.io | olm-sys |
| lib.rs | olm-sys |
| version | 1.3.2 |
| created_at | 2018-03-31 23:19:15.389686+00 |
| updated_at | 2022-06-11 18:07:52.427352+00 |
| description | Low level binding for libolm |
| homepage | |
| repository | https://gitlab.gnome.org/BrainBlasted/olm-sys |
| max_upload_size | |
| id | 58387 |
| size | 2,220,214 |
olm-sys: Low Level Bindings For OlmThis is an intermediate crate that exposes the C API of libolm to Rust. If you want to start building things with libolm from Rust, check out olm-rs.
This library can either be built by statically or dynamically linking against libolm:
This is the default and requires no further action. libolm is built locally and then linked against statically.
libstdc++/libc++For linking against libolm dynamically, first make sure that you have the library in your link path.
Then build this library with the OLM_LINK_VARIANT environment variable set to dylib.
For example, building your project using olm-sys as a dependency would look like this:
$ OLM_LINK_VARIANT=dylib cargo build
To enable cross compilation for Android set the environment variable
ANDROID_NDK to the location of your NDK installation, for example:
$ ANRDOID_NDK=/home/user/Android/Sdk/ndk/22.0.7026061/
The linker needs to be set to an target specific one as well, for example for
aarch64-linux-android set this into your cargo config:
[target.aarch64-linux-android]
ar = "/home/user/Android/Sdk/ndk/22.0.7026061/toolchains/llvm/prebuilt/linux-x86_64/bin/ar"
linker = "/home/user/Android/Sdk/ndk/22.0.7026061/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android30-clang"
After both of these are set, compilation should work as usual using cargo:
$ ANDROID_NDK=~/Android/Sdk/ndk/22.0.7026061 cargo build --target aarch64-linux-android
To enable cross compilation for iOS, set the environment variable
IOS_SDK_PATH to the iOS SDK location by running:
$ export IOS_SDK_PATH=`xcrun --show-sdk-path --sdk iphoneos`