/cargo-lipo

Cargo subcommand to automatically create universal libraries for iOS.

Primary LanguageRustApache License 2.0Apache-2.0

cargo lipo Build Status Crates.io

Provides a cargo lipo subcommand which automatically creates a universal library for use with your iOS application.

Usage

From anywhere you would usually run cargo you can now run cargo lipo or cargo lipo --release to create a universal library for ios, which can be found in $target/universal/{release|debug}/$lib_name.a.

Make sure you have a library target in your Cargo.toml with a crate type of staticlib:

[lib]
name = "..."
crate-type = ["staticlib"]

Installation

Install cargo lipo with cargo install cargo-lipo. cargo lipo can be build with rust 1.8 and later.

You also need a rust compiler which can compile for the iOS targets. If you use rustup all you should have to do is

rustup target add aarch64-apple-ios
rustup target add armv7-apple-ios
rustup target add armv7s-apple-ios
rustup target add i386-apple-ios
rustup target add x86_64-apple-ios

If you use a recent version of multirust

multirust add-target aarch64-apple-ios
multirust add-target armv7-apple-ios
multirust add-target armv7s-apple-ios
multirust add-target i386-apple-ios
multirust add-target x86_64-apple-ios

should work.

Note: both will only work on stable starting with the 1.8 release.

Alternatively you can build a rust compiler with iOS support yourself.

Troubleshooting

Cargo fails with error: can't find crate for `std` : Your rust compiler most likely does not support cross-compiling to iOS.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.